visualmind
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2006-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1311回复:2

(高分求教)过滤驱动问题,敬请版主关注一下!!!!

楼主#
更多 发布于:2004-05-18 12:35
过滤驱动问题,具体如下:(2000/xp)
一个过滤驱动,需要挂载在usbstor.sys上作为UpperFilter,过滤Mass storage disk向其发出的Device I/O Control。除此之外,所有经过过滤的Irp类型,全都Dump到Debug Info。
驱动正常加载,使用工具以及在注册表中察看,均没有问题。
Restart 设备后,使用SoftICE mod命令可以看到该模块正常载入。
但是,观察Dump信息,却发现只有PNP类型irp。且仅在Start device和Remove device的时候。其余读写等所有操作,过滤均收不到。
显然这是不可能的。于是,我使用WDMSniffer,加载到USB Mass Storage Device上,察看IRP,是很正常的。在纳闷的同时,发现一个特点,那就是,usbstor所拥有的Device Object有两个!其它的IRP都是由另外一个Device Object处理的。

所以,我的过滤也要加到那个Device Object上去。可是,那个Device Object是Query Relation的时候创建出来的,我不知道,应该怎样做了。

请各位给些提示,最好能有部分关键代码行。或是还有什么其他的方法,请不吝赐教!!

Thanks in advance!

最新喜欢:

Biii38Biii38
visualmind
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2006-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-19 14:31
经过检查,我加载上的是usbstor的FDO。它在处理IRP_MN_QUERY_DEVICE_RELATIONS之后,为其子设备创建了一个PDO。
所以,我的过滤只能过滤到pnp类型的IRP.
现在的问题是,我可不可以直接在Filter中再创建一个Fido,然后将它Attach到child PDO上呢?

大家帮帮忙啊!!
betterboy
驱动牛犊
驱动牛犊
  • 注册日期2004-02-22
  • 最后登录2007-08-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-19 08:51
关注中。
游客

返回顶部