zhaodong
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2002-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1339回复:5

Win2K 设备驱动程序设计指南的第8章:

楼主#
更多 发布于:2002-08-17 12:05
我想问问关于书上的例子:
(1)当测试程序执行到WriteFile时,StartIo例程产生一个中断,当执行到DpcForIsr 的最后,调用IoStartNextPacket,后者又调用StartIo例程,但是现在处理的是ReadFile相应的IRP,ReadFile相应的IRP是不能触发中断的,StatrIo例程又会调用IoStartNextPacket,后者有调用StartIo例程,又会调用 IoStartNextPacket...会不会如此循环调用下去,跳不出来啊!!
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-17 19:49
IRP队列空就返回了,不会循环不完
zhaodong
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2002-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-17 21:58
你没理解我的意思,当WriteFile对应的DpcForIsr例程调用了IoCompleteRequest后,又调用IoStartNextPacket,这时IRP队列不为空,因为测试程序的ReadFile将产生下一个IRP,对应的IRP是不用中断的,但是IoStartNextPacket却调用StartIo例程,StartIo例程又调用IoStartNextPacket所以才会有我的问题。。
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-18 17:48
这不是循环,根本没有循环
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-08-19 09:16
我想问问关于书上的例子:
(1)当测试程序执行到WriteFile时,StartIo例程产生一个中断,当执行到DpcForIsr 的最后,调用IoStartNextPacket,后者又调用StartIo例程,但是现在处理的是ReadFile相应的IRP,ReadFile相应的IRP是不能触发中断的,StatrIo例程又会调用IoStartNextPacket,后者有调用StartIo例程,又会调用 IoStartNextPacket...会不会如此循环调用下去,跳不出来啊!!

IoStartNextPacket只是说,这个IRP已经完了,可以开始下一个IRP了。你没有理解书的意思。
gsbean
驱动牛犊
驱动牛犊
  • 注册日期2002-10-07
  • 最后登录2002-10-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-11 11:13
哪位能帮我EMAIL以下电子版的《Win2K 设备驱动程序设计指南》啊。本站上面的好象没有了。ASAP。 谢谢了
  gsbean@elong.com
游客

返回顶部