版块
论坛
喜欢
话题
应用
搜索
登录
注册
xiaorain的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=54736
app异常结束的时候,驱动里如何完成已经挂起或尚未完成的irp?
驱动中接受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)
回复
xiaorain
:
cancelroutine是下层驱动在取消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)
回复
« 上一页
1
2
3
4
下一页 »
xiaorain
加关注
写私信
0
关注
0
粉丝
95
帖子
返回顶部