版块
论坛
喜欢
话题
应用
搜索
登录
注册
aasa2的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=79273
竟然有这样的现象
IoSetCompletionRoutine( Irp, SfQueryInformationCompletion, NULL, TRUE, FALSE, FALSE );完成历程:DBGSTATICNTSTATUSSfQueryInformationCompletion( ...
全文
回复
(
5
)
2005-02-21 21:12
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
bmyyyud
:
问题不在完成例程,而在别处,如有些地方,你调用类似IoSkipCurrentIrpStackLocation的函数,使IrpStack堆栈层数不够,这样便出现你的那种情况。
(2005-02-22 10:02)
回复
zhangshengyu
:
需要 IoCopyCurrentIrpStackLocationToNext( Irp );
(2005-02-22 09:26)
回复
tooflat
:
关于楼主的问题,windows驱动编程模型中是这么说的: 完成例程使用的设备对象指针参数就是I/O堆栈单元中DeviceObject域中的指针。通常IoCallDriver设置该值。有时,在创建IRP时还同时创建一个额外的堆栈单元,以便能向完成例程传递参数而不用创建一个额外...
(2005-02-22 09:22)
回复
tooflat
:
不是说了在完成例程里不要碰IRP.因为下层PDO已经调用IOCOMPLTERREQUEST了,可能IRP已经被释放了..... 在完成例程里当然可以碰irp,因为完成例程就是ioCompleteRequest在内部调用的,只有在所有的完成例程全部调完以后,irp才会被释放
(2005-02-22 09:19)
回复
wowocock
:
不是说了在完成例程里不要碰IRP.因为下层PDO已经调用IOCOMPLTERREQUEST了,可能IRP已经被释放了.....
(2005-02-21 22:20)
回复
aasa2
加关注
写私信
0
关注
0
粉丝
399
帖子
返回顶部