驱动中接受app得读请求,然后自己创建irp,注册完成例程,并把它发送给总线驱动,如果此irp尚未完成,此时app被异常结束(如结束任务)了,那我在驱动中应该如何处理irp呢?如果是用计时器,在dpc例程中取消掉这个irp,然后等待。此时会进入完成例程,等到完成例程处理完毕,在设...
全文
回复(31) 2005-02-05 12:18 来自版块 - 内核编程
表情
bmyyyud[quote]或者,用个定时器检测超时,用CustomTimerDpc处理吧 这种方法对于自己创建的irp好像不可行。 我测试过,customerTimerDpc运行在dispatch_level上,在这个中断级上,不能等待。而如果我在customerTimerDpc中...(2005-02-22 10:58)
xiaorain或者,用个定时器检测超时,用CustomTimerDpc处理吧 这种方法对于自己创建的irp好像不可行。 我测试过,customerTimerDpc运行在dispatch_level上,在这个中断级上,不能等待。而如果我在customerTimerDpc中用IoCanc...(2005-02-21 11:23)
acidfish驱动中接受app得读请求,然后自己创建irp,注册完成例程,并把它发送给总线驱动,如果此irp尚未完成,此时app被异常结束(如结束任务)了,那我在驱动中应该如何处理irp呢? 如果是用计时器,在dpc例程中取消掉这个irp,然后等待。此时会进入完成例程,等到完成例程处理完毕,...(2005-02-21 10:19)
acidfish这种情况,我前段时间专门试验过。 当应用层某一个线程发送到驱动的Irp没有返回,就是说驱动IoMarkIrpPending,return STATUS_PENDING,这种情况下,若该线程步进行等待而要直接完成退出,那么该线程结束代码会要求I/O manager调用该Irp的c...(2005-02-21 10:15)
bmyyyud或者,用个定时器检测超时,用CustomTimerDpc处理吧(2005-02-21 09:58)
xiaoraincancelroutine是下层驱动在取消IRP或者应用程序调用CancelIo的时候才会被调用吧。 现在如果应用程序被结束任务了,应用程序不会调用cancelIo了,要想取消IRP,只能是下层驱动取消irp,然后上层驱动的cancelroutine才会被调用了。 下层驱动如...(2005-02-21 09:13)
bmyyyud驱动中接受app得读请求,然后自己创建irp,注册完成例程,并把它发送给总线驱动,如果此irp尚未完成,此时app被异常结束(如结束任务)了,那我在驱动中应该如何处理irp呢? 如果是用计时器,在dpc例程中取消掉这个irp,然后等待。此时会进入完成例程,等到完成例程处理完毕,...(2005-02-07 09:59)
xuzheng318怎么个注册法!(2005-02-06 15:03)
wowocock[quote]注册CancelRountion 好像比较麻烦的 [/quote] 为什么???(2005-02-06 09:41)
fslife注册CancelRountion 好像比较麻烦的(2005-02-05 17:43)

返回顶部