阅读:2329回复:10
尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁用呢?
尊敬的大牛大哥们:
小弟遇到了一个让我寝食难安的问题,那就是写一个驱动,实现在U盘插入电脑后,对U盘的描述符等基本信息进行读取,以及对U盘进行禁用。 我认真看过了sfilter等代码,也看过了楚狂人的文章,可是还是没有能写出代码实现以上功能 楚狂人文章中讲到当U盘插入usb口时,一个“J:”之类的Volume动态诞生,此时FS的CDO将会得到一个IRP其Major Function Code为IRP_MJ_FILE_SYSTEM_CONTROL, Minor Function Code为IRP_MN_MOUNT。我想在这个IRP遇到的时候读取U盘描述符等基本信息,然后阻止这个Volumn 的挂载,从而实现对U盘的禁用。可是这个想法实现不了啊。 所以向大牛大哥们请教一下,这个想法应该怎样实现呢? 此致 敬礼! 急啊!!! |
|
沙发#
发布于:2007-05-16 12:54
Re:尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁
可以变通一下,允许系统挂载该U盘,但是在Create中过滤掉和这个U盘相关的所有请求,这样做有一点好处:当中途由于某种原因要开放U盘的话那么就可以动态切换! |
|
|
板凳#
发布于:2007-05-17 09:45
同意楼上的,不过读取U盘的描述符还是在底层做比较好
|
|
|
地板#
发布于:2007-05-28 09:46
请教devia大哥,怎么在Create中过滤掉这个U盘的请求呢?就是以什么为特征,有没有相关的代码或者例子呢?谢谢你了!!
|
|
地下室#
发布于:2007-05-28 10:31
在MOUNT中判断是否是U盘,如果是在设备扩展中保留一个标记,
然后在后续的SfCreate中根据这个标记来过滤即可。 不过首先你得能判断MOUNT的盘是U盘! |
|
|
5楼#
发布于:2007-05-28 16:32
Re:尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁
看看看 |
|
6楼#
发布于:2007-06-01 11:56
先谢谢Devia大哥的及时回复,有你们这些大牛的帮助,我们这些牛犊心里塌实多了!!我回头就试一下
|
|
7楼#
发布于:2007-06-02 15:34
对U盘进行禁用,应该问题不大吧,这个我都解决了.呵呵
我的问题就是如何让U盘只读,禁止写入 谁知道啊?? |
|
8楼#
发布于:2007-06-04 14:29
修改返回的scsi数据
|
|
|
9楼#
发布于:2007-06-16 17:11
如果用SFILTER的代码的话就会出现一个问题
我的SFILTER无法绑定新加的卷 大家好,请大家帮忙来了,我的SFILTER无法绑定新加的卷,原因是生成绑定的设备被删除了 我绑定的是CDROM系统 在打开我的电脑进行刷新之后驱动就进入了绑定卷代码 但是在运行完这些代码后,创建的用于绑定卷的设备对象在DEVICETREE中并没有看到 其中处理的函数有 control 进行绑定 create fastiodevicecontrol cleanupclose fastiodetachdevice cleanupmountdevice 我不明白为什么在绑定后会处理这些 我用FILESPY绑定了C: 进行刷新只有create的IRP 请大家多指点啊 |
|
10楼#
发布于:2007-06-18 12:52
引用第9楼wwspeter于2007-06-16 19:11发表的 : 光驱里面有碟片吗? |
|
|