阅读:1368回复:11
请教一个设备过滤的问题??
想通过过滤驱动实现对设备访问的控制。
设备的种类包括:cdrom,serial,parport,usb disk,floppy disk等等。 其中关于设备名称(Device name)有一个问题: 例如cdrom的设备名称一般为DeviceCdRom0,DeviceCdRom1等,串口的设备名称为DeviceSerial0。但是usb disk的设备名称好像不固定,我利用DeviceTree工具查看发现,U盘的设备名称是一个类似Device0000072的东东。 还有,如果要对这些设备都进行访问过滤控制,有没有什么办法可以一次实现,而不用逐一设备进行过滤。 请大虾给指点一下。 [编辑 - 11/5/04 by fslife] |
|
|
沙发#
发布于:2004-11-05 13:05
一次实现恐怕不可能
只写一个driver到是没有问题,但驱动一定会很复杂 00000072这样的名字是系统产生的(因为USB等符合WDM规范,使用了GUID来命名,所以是这样) |
|
|
板凳#
发布于:2004-11-05 13:49
一次实现恐怕不可能 谢谢AllenZh!! 请问如果要写过滤对U盘的访问,如何得到设备对象? |
|
|
地板#
发布于:2004-11-05 14:21
弱弱地问一下:如果要驱动过滤对设备的访问控制,譬如CDROM,是不是要通过IoCreateDevice FILE_DEVICE_CD_ROM ,然后在DrvDispatch中拦截IRP啊?
|
|
|
地下室#
发布于:2004-11-05 14:34
弱弱地问一下:如果要驱动过滤对设备的访问控制,譬如CDROM,是不是要通过IoCreateDevice FILE_DEVICE_CD_ROM ,然后在DrvDispatch中拦截IRP啊? 是有点弱 :P 设置为FILE_DEVICE_CD_ROM并不重要,关键是你要和CDROM连接上 |
|
|
5楼#
发布于:2004-11-05 14:37
和普通的差不多,连接上就可以了 |
|
|
6楼#
发布于:2004-11-05 15:12
[quote] 和普通的差不多,连接上就可以了 [/quote] 无论是IoAttachDeviceToDeviceStack还是IoAttachDevice,都得先得到TargetDevice(类型为PDEVICE_OBJECT 或者 PUNICODE_STRING),但是不知道U盘设备的名称,怎么得到这个TargetDevice。 不知道我的理解有没有问题。 |
|
|
7楼#
发布于:2004-11-08 11:32
各位帮我再看看这个问题,谢谢!
|
|
|
8楼#
发布于:2004-11-24 15:13
请问通过过滤器来实现,能够实现用户访问控制吗,还是仅仅是起停设备?
还有是所有设备开发一个过滤器,还是针对每种设备各自开发一个过滤器? |
|
9楼#
发布于:2004-11-25 13:47
各位帮我再看看这个问题,谢谢! 对于U盘的问题可以参考SFILTER的方法,在MOUNT的时候进行拦截. |
|
|
10楼#
发布于:2004-11-25 13:58
多谢各位指点了,谢谢!!
|
|
|
11楼#
发布于:2005-03-28 16:40
我现在也遇到这个问题了
请问楼主是怎么解决的? |
|