阅读:4450回复:14
请教我给usb storage写的uppfilter怎么过滤不到u盘的读写?
我就将toaster下面的filter捎加修改,然后在在\windows\inf\目录下的usbstor.inf中忝加安装Upperfilter的内容,也安装成功了,我用windbg跟踪调试,adddevice很正常,能捕获到pnp及power的irp,但是我读写u盘,却看不到任何的irp.
而我将其改成Lowerfilter时却能抓到很多irp,这是为什么呢? 按照我的理解,usb存储设备的驱动从上到下应该是这样组织的,disk.sys, usbstor.sys. disk.sys向下发的是srb,usbstor.sys将这些转换为usb总线命令,那么usbstor的Upperfilter应该可以捕获到包装在srb中的cdb. 描述不是很清楚,我付上代码,在vmware5.5, winxp sp2下测试过的. |
|
最新喜欢:Leopar... |
沙发#
发布于:2007-04-28 07:38
modify your inf file.
change {36FC9E60-C465-11CF-8056-444553540000} to {4D36E967-E325-11CE-BFC1-08002BE10318} |
|
|
板凳#
发布于:2007-04-29 23:18
{4D36E967-E325-11CE-BFC1-08002BE10318}是diskdrive类的guid,这样会不会成为disk.sys的upfilter?而不是usbstor.sys的upperfilter?
|
|
地板#
发布于:2007-04-30 13:02
引用第2楼hunbalo于2007-04-30 01:18发表的“”: sure |
|
|
地下室#
发布于:2007-05-01 14:33
引用第3楼rayyang2000于2007-04-30 13:02发表的“”: 那我怎么控制我的过滤驱动仅仅加载为usb mass storage 设备的过滤驱动? 我看了bushound的过滤驱动是加载为usb类的lower filter, atapi的upper filter,他可以抓到cbd。 我反汇编usbstor.sys看了,其中确实实现了IRP_MJ_SCSI,但我还搞不明白我的 upper filter驱动为什么就过滤不到IRP_MJ_SCSI. |
|
5楼#
发布于:2007-05-05 20:06
upper的filter确实抓不到SCSI,
只有lowerfilter才能抓到, 我想可能是因为需要经过usbstor的转换之后才转变成scsi的 我现在能抓到scsi却抓不到sense_mod |
|
6楼#
发布于:2007-05-05 23:30
引用第5楼hezhizhi于2007-05-05 20:06发表的“”: 我反了一下disk.sys,貌似mode sense在其中实现,那么disk.sys的lower filter能看到么? |
|
7楼#
发布于:2007-05-07 17:01
你要分清楚设备栈.
disk.sys 属于 storage class driver. 如果你把FILTER 挂在 class driver 下 就可以抓到SCSI. |
|
|
8楼#
发布于:2007-05-07 19:48
引用第7楼xtmzl于2007-05-07 17:01发表的“”: 那么对于usb mass storage 设备来说,这个设备栈是什么样的呢? |
|
9楼#
发布于:2007-05-08 11:14
你用DeviceTree看一下 usbstor.sys 这个驱动程序.
当插入一块U盘时,会生成两个DeviceObject 一个是 storage stack 的. 另外一个是usb stack . 如果你的FILTER 是USB stack 的upfilter,自然抓不到SCSI cmd. 虽然你的FILTER都看起来挂在USBSTOR上,却是挂在不同的DeviceObject 上的. |
|
|
10楼#
发布于:2007-05-12 23:38
引用第9楼xtmzl于2007-05-08 11:14发表的“”: 请问我想挂在usbstor上,inf文件要怎么写?upfilter都放在哪个键值上? 谢谢 |
|
11楼#
发布于:2008-01-17 04:43
楼主,请问如何安装您的驱动,直接右键点usbstor.inf安装么?我这样做了怎么没有什么反应?
|
|
12楼#
发布于:2008-01-17 07:07
这个一个概念性问题:
UsbStore.sys的功能就是完成磁盘访问接口到SCSI命令的转换,UsbStore的上层过滤驱动拦截到的是磁盘读写,而下层过滤驱动拦截的就是包含SCSI命令的URB了。可以使用一些Usb的包解析工具直接看到urb的内容。 |
|
|
13楼#
发布于:2008-05-06 22:20
弱弱的问问啊,我是个驱动初学者,我想用DriverStudio做U盘的过滤驱动,过滤写,过滤读写,或者写的数据加密一下,但是不知道怎么把filter挂到哪个驱动上,并且要过滤什么IRP,高手指点,高手指点,我是个学生,谢谢~~
小弟再拜,再拜—— |
|
14楼#
发布于:2008-12-13 09:43
请教:加载上层过滤驱动在{4D36E967-E325-11CE-BFC1-08002BE10318}下,重启后无法进入系统是什么原因?
注:{4D36E967-E325-11CE-BFC1-08002BE10318}下本来就有个upperfilters |
|
|