版块
论坛
喜欢
话题
应用
搜索
登录
注册
super9的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=195608
由IoSetCompletionRoutine源代码引出的两点迷惑
1.#define IoSetCompletionRoutine(irp,routine,completioncontext,success,error,cancel)\#{ PIO_STACK_LOCATION irpsp;\#ASSERT((success)|(error)|...
全文
回复
(
4
)
2008-08-20 01:34
来自版块 -
ABC初学者
◆
◆
表情
告诉我的粉丝
提 交
lxcsyh
:
第一个问题,在向驱动链表的下一层驱动传递IRP之前,当前驱动有必要设置下一层IRP stack的信息。
(2009-02-03 11:42)
回复
woo东去来袭
:
第一个问题,IoGetNextIrpStackLocation仅仅是得到下层I/o堆栈,这跟谁调用完成例程有什么关系,再说,当irp完成之后,它会一层一层向上返回,如果遇到哪一层设置有完成例程,就在哪一层执行完成例程呗 第二个问题,当你本层驱动不需要对IRP执行任何操作的时候(改...
(2009-01-31 13:06)
回复
better0332
:
对于第二个问题,真如你所说的,下层驱动接收到就是要堆栈单元A的数据,因为堆栈单元A的数据就是你过滤之后的,显然是下层需要的!
(2008-08-24 00:11)
回复
better0332
:
我也想不通,居然跟我想的问题一样,帮你顶一下! 我是这样认为的: 因为必须在下层设备IO成功后,才会调用本层设备的完成例程,所以设置在下层设备栈中
(2008-08-23 22:02)
回复
super9
加关注
写私信
0
关注
0
粉丝
71
帖子
返回顶部