首页
社区
课程
招聘
[求助]想问一下RING3程序如何与过滤驱动通信,严重请大家帮忙解决一下
发表于: 2009-10-4 11:00 7067

[求助]想问一下RING3程序如何与过滤驱动通信,严重请大家帮忙解决一下

2009-10-4 11:00
7067
在网上查了一下,有的人说:让你的过滤驱动创建2个设备对象,一个对象用于挂接其他设备,另一个对象用与和RING 3的程序通信,2个设备分别用不同的分派例程(就是Dispatch例程).看到这里我就有疑问了,一个驱动只能有一套分派例程啊,怎么知道经过我的过滤驱动的IRP是不是从我的RING 3程序发过来的呢?

我现在很迷惑,如果一个驱动创建2个或多个设备对象,那么每个设备对象如何知道这个IRP就是自己需要处理的IRP呢?

希望大家讲详细一点.

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
设备本身不具备判断能力,但是它只会收到应该发给它的IRP,比如你ring3程序的DeviceIoControl只会发给CDO,FiDO则只会收到它所附加的设备上流动的IRP
因为共用的是同一个DispatchRoutine,取IoGetCurrentStackLocation()->DeviceObject,判断一下是不是你的CDO就可以了,若是,提取你的ControlCode然后分别进行处理,若不是,则直接下发给FiDO的下一层设备就可以了,我们不管~~
2009-10-4 12:15
0
雪    币: 7992
活跃值: (2566)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
有图有真相..

这问题说起来其实相当的简单但却很难解释..我就不多废话了.空说理论.不是我长项....





效果图



上传的附件:
2009-10-4 13:20
0
雪    币: 225
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢楼上2位,对我的帮助很大
2009-10-4 15:04
0
游客
登录 | 注册 方可回帖
返回
//