Heaven
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2002-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1381回复:4

请求中断驱动的问题

楼主#
更多 发布于:2002-04-29 11:18

Walter Oney的例子,使用完成例程循剑中断。具体是:StartInterruptUrb构造并提交中断请求URB;完成例程OnInterrupt开始新一轮循剑,该例程完成队列中的一个IRP(用户太应用程序使用DeviceIoControl提出请求)。

有没有人看过这个例子? 其中的IRP队列怎样一个工作方式?
感觉这个队列中只能有一个IRP,而不可能保存多个

另外,驱动中实现中断传输,可以不用循剑吧
用户每提出请求,则构造并提交一个urb,等待完成
这样做有失严格吗?
Angel F. Heaven
Heaven
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2002-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-29 11:25

是不是例子中的队列只起到保存1个当前IRP的作用?
Angel F. Heaven
Heaven
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2002-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-30 10:14

:((
每人回?
Angel F. Heaven
KungFu
驱动大牛
驱动大牛
  • 注册日期2001-09-27
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望24点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-30 15:05

是不是例子中的队列只起到保存1个当前IRP的作用?
 

我没有仔细研究过这个例子。不过。对于irp队列。我的理解是:可以保存多个irp。其实,所谓的队列,在数据结构里面有详细的介绍,不知道你是否还给了老师:)
我不写驱动好多年
Heaven
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2002-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-01 10:26

队列得作用当然是用于排队处理多个元素,只是这个例子一直让我胡涂。现在想清楚了,原来恨simple:
这个usbint本身在调用通用驱动的cache irp函数排队ioctl irp实际只是为了保存当前中断传输请求irp;这里的队列是下层的通用驱动程序所使用的。
呵呵

不过,好多东西确实都还给了老师,在他批期末考试试卷的时候
:)

Angel F. Heaven
游客

返回顶部