leven
驱动牛犊
驱动牛犊
  • 注册日期2004-06-28
  • 最后登录2006-12-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1337回复:1

问个U盘过滤的问题

楼主#
更多 发布于:2005-08-05 12:10
  我想作个U盘过滤驱动来控制U盘的只读功能,同时还要得到写文件的文件名和内容。
如果在usb class设一个lowerfilters,等于对usbstor.sys做过滤,可以截获所有的USB设备的插拔情况,但不好得到写的内容。
如果对某个设备做upperfilters,等于对disk.sys做过滤,可以收到IRP_MJ_WRITE,也可以得到写的内容。问题是如果有新设备插入的话我就没法过滤它了。除非在得到新设备通知后,对这个设备在注册表里写个upperfilters,然后replug这个设备一下(禁用再启用?)但不想这样,于是就想手动IoAttachDeviceToDeviceStack,不通过wdm过滤驱动了。但这样问题就来了。
IoAttachDeviceToDeviceStack只能把自己加载到对方attached chain的最高层,而我现在是要加到disk.sys和pargmgr.sys中间。后来想了个办法,先把pargmgr.sys 给IoDetach掉,再attach自己,再attach pargmgr.sys ,这样我就处在中间位置了。用devicetree看到的效果和WDM的效果一模一样。但此时却收不到任何IRP了,请问是怎么回事?
罗里罗嗦一大堆不知道有没有人明白我的意思?有人遇到过同样的问题吗
leishangwen
驱动牛犊
驱动牛犊
  • 注册日期2007-01-07
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-02-03 09:09
对USB Mass Storage 设备做过滤就可以了,这个是对usbstor.sys做过滤
根据URB中的SCIS指令来判断何时取数据
游客

返回顶部