首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
0
0
[求助]IoSetCompletionRoutine设置的完成例程属于哪层io堆栈?
发表于: 2013-11-6 11:25
5807
[求助]IoSetCompletionRoutine设置的完成例程属于哪层io堆栈?
bdwdd
2013-11-6 11:25
5807
不知道张帆的书有无写错或者我理解错,里面的IoSetCompletionRoutine宏解释是得到下层的io堆栈,然后把回调地址写入,可是完成例程里对irp的操作完全像对本层的io堆栈的操作,也同样重复设置了这个完成例程,同样使用IoCallDriver?
要是IoSetCompletionRoutine设置在本层io堆栈就好理解:当irp被完成,irp层层往上回滚,遇到哪层io堆栈有完成回调例程的就调用,这样在例程中重复设置完成例程以及iocalldriver也好理解。问题就在IoSetCompletionRoutine书上的宏解释是:
irpSp=IoGetNextIrpStackLocation((irp));
irpSp->CompletionRoutine=(Routine);
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件:
WC)SC8MWN8YK74_XOQH88`S.jpg
(38.10kb,4次下载)
}HNWMJS}7EVL$43JUG13%TD.jpg
(35.40kb,2次下载)
E9O37`E{YURDGZ1]IS{ZN$N.jpg
(49.10kb,3次下载)
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
6
)
bdwdd
雪 币:
38
活跃值:
(11)
能力值:
( LV2,RANK:10 )
在线值:
发帖
52
回帖
215
粉丝
0
关注
私信
bdwdd
2
楼
上图是说设置下层的完成例程,下图是例程代码,里面同样设置下层完成例程,然后iocalldriver,这样io堆栈都被耗完了。。应该怎么理解?
2013-11-6 11:48
0
bdwdd
雪 币:
38
活跃值:
(11)
能力值:
( LV2,RANK:10 )
在线值:
发帖
52
回帖
215
粉丝
0
关注
私信
bdwdd
3
楼
在写功能驱动时不是将一个大读写量的irp请求分成多个小读写量的irp吗,他的做法就是在完成例程里这样重复设置本完成例程。。
2013-11-6 11:58
0
DriverAsm
雪 币:
22
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
146
粉丝
0
关注
私信
DriverAsm
4
楼
完成例程存在的意义在于
捕捉下层驱动完成操作的时机(可以用于释放资源、也可以用于再次把IRP下发)
你把完成例程设置在本层有意义吗?
你处理没处理完自己还不知道???
所以完成例程要设置在下层、让下层完成时调用你的完成例程。
2013-11-6 11:59
0
bdwdd
雪 币:
38
活跃值:
(11)
能力值:
( LV2,RANK:10 )
在线值:
发帖
52
回帖
215
粉丝
0
关注
私信
bdwdd
5
楼
那当我们设置的完成例程被调用时,所操作的io堆栈被操作系统设置成本层吧?
2013-11-6 14:19
0
DriverAsm
雪 币:
22
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
146
粉丝
0
关注
私信
DriverAsm
6
楼
我听晕了。。。自己去研究
IRP 和 IO_STACK_LOCATION数组 与 分层驱动结构的关系。。。
不懂就去看代码。。。
看不懂我也没办法。。。
2013-11-6 15:34
0
bdwdd
雪 币:
38
活跃值:
(11)
能力值:
( LV2,RANK:10 )
在线值:
发帖
52
回帖
215
粉丝
0
关注
私信
bdwdd
7
楼
我在看雪看到另一贴在也是这个问题,以及网上搜了下,发现我的猜想大概没错。原来驱动开发如此简单~
2013-11-6 15:37
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
bdwdd
52
发帖
215
回帖
10
RANK
关注
私信
他的文章
[求助]vt能绕过所有idt hook吗?
4924
[求助]为什么在高版本里重载内核的seh不能用?
4294
请问去商场买笔记本怎么探测它是否支持vt?
6028
Crypto API的一个会话加密例子有没有
4816
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
bboyiori
squallqz
FadeTrack
谁下载
×
squallqz
谁下载
×
bdwdd
squallqz
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部