histogram
驱动牛犊
驱动牛犊
  • 注册日期2004-08-28
  • 最后登录2006-09-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1145回复:3

什么时候设置CancelEoutien=NULL

楼主#
更多 发布于:2004-09-27 20:53
当请求取消一个IRP时,I/O管理器是先将该IRP的CancelRoutine设为NULL,还是在调用Cancel取消例程后有取消例程将CancelRoutine设为NULL?
steven_kane
驱动牛犊
驱动牛犊
  • 注册日期2002-12-22
  • 最后登录2009-10-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-28 11:51
取消一个irp,为什么要设置cancel routine为null呢?不用
histogram
驱动牛犊
驱动牛犊
  • 注册日期2004-08-28
  • 最后登录2006-09-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-28 15:55
我的理解是当取消一个IRP时系统会设置它的CancelRoutine,
但现在就是不知道什么时候设置。哪位知道请说说……
steven_kane
驱动牛犊
驱动牛犊
  • 注册日期2002-12-22
  • 最后登录2009-10-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-28 18:33
当调用IoCancelIrp时,
该函数会把irp->Cancel(+24)置1,然后调用irp->CancelRoutine(+38),在把irp->CancelRoutine置NULL, ++irp->StackCount,
然后比较irp->CurrentLocation与irp->StackCount的值,在以后的操作就和本贴不相关了
游客

返回顶部