版块
论坛
喜欢
话题
应用
搜索
登录
注册
baiyuanfan的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=94933
在IoCompletionRoutine里需要调用IoCompleteIrp吗?
标准过滤驱动程序里,我想建立一个IoCompletionRoutine来改变返回的数据,但是在写框架的时候,NTSTATUS completeirp(IN PDEVICE_OBJECT DeviceObject,IN PIRP irp,IN PVOID Context){ ...
全文
回复
(
15
)
2005-07-18 11:46
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
baiyuanfan
:
那我就用普通的异步方式,直接在完成例程例修改数据也可以吧,让dispatch立刻返回
(2005-07-23 21:22)
回复
baiyuanfan
:
upup
(2005-07-23 21:18)
回复
arthurtu
:
就是, completion_routine 可能在passive,也可能在dispatch
(2005-07-21 11:28)
回复
bmyyyud
:
下面是引用rayyang2000于2005-07-21 09:48发表的: just because sometimes u need synch process. and sometimes completion_routine runs at <= dispatch...
(2005-07-21 10:44)
回复
rayyang2000
:
下面是引用baiyuanfan于2005-07-19 13:44发表的: arthurtu老大说的在很多ddk自己带的过滤驱动里都是这样子实现的,但是小弟有个疑问,就是这样会阻塞掉自己的驱动的dispatch的返回,使异步的io失去意义了。为什么不直接在自己驱动的dispa...
(2005-07-21 09:48)
回复
baiyuanfan
:
下面是引用arthurtu于2005-07-19 13:05发表的: 对于楼主的情况,你可以在完成例程,停掉irp的complete处理 即 yourComplete(...) { // 创建一个event,通过PVOID Context传递 ....... arth...
(2005-07-19 13:44)
回复
arthurtu
:
对于楼主的情况,你可以在完成例程,停掉irp的complete处理 即 yourComplete(...) { // 创建一个event,通过PVOID Context传递 KeSetEvent(...); return STATUS_MORE_PROCE...
(2005-07-19 13:05)
回复
mptchenx
:
to baiyuanfan 倒了。。我说的就是通过直接return status_pending 不让上面傻等 跟IoCompleteIrp 无关 to zhao版,我只是简单说下pending。 并不是PendingReturned 。 你上面说的对 if(irp...
(2005-07-19 11:54)
回复
zhaock
:
回答的不准确。这个问题说起来话长,试着解释一下。可以参看一下walter oney的windows driver model一书,有更为详细的解释 >>已经是IoCompletionRoutine了,为什么还会接受到PendingReturned的irp >&g...
(2005-07-19 09:45)
回复
zhangshengyu
:
完成历程应该是这样 NTSTATUS CompletionRoutine(PDEVICE_OBJECT device, PIRP Irp, PVOID context) { if (Irp->PendingReturned) IoMarkIrpPending(I...
(2005-07-19 09:35)
回复
1
2
下一页 »
baiyuanfan
加关注
写私信
0
关注
0
粉丝
110
帖子
返回顶部