humerousman
驱动牛犊
驱动牛犊
  • 注册日期2007-04-12
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分390分
  • 威望40点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
阅读:2329回复:10

尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁用呢?

楼主#
更多 发布于:2007-05-15 17:30
尊敬的大牛大哥们:
        小弟遇到了一个让我寝食难安的问题,那就是写一个驱动,实现在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盘的禁用。可是这个想法实现不了啊。
        所以向大牛大哥们请教一下,这个想法应该怎样实现呢?
        此致
敬礼!
        急啊!!!                                          
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-05-16 12:54
Re:尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁
可以变通一下,允许系统挂载该U盘,但是在Create中过滤掉和这个U盘相关的所有请求,
这样做有一点好处:当中途由于某种原因要开放U盘的话那么就可以动态切换!
人总在矛盾中徘徊。。。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2007-05-17 09:45
同意楼上的,不过读取U盘的描述符还是在底层做比较好
作一名真实,诚实,优秀的科技工作者!
humerousman
驱动牛犊
驱动牛犊
  • 注册日期2007-04-12
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分390分
  • 威望40点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-05-28 09:46
       请教devia大哥,怎么在Create中过滤掉这个U盘的请求呢?就是以什么为特征,有没有相关的代码或者例子呢?谢谢你了!!
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
地下室#
发布于:2007-05-28 10:31
在MOUNT中判断是否是U盘,如果是在设备扩展中保留一个标记,
然后在后续的SfCreate中根据这个标记来过滤即可。

不过首先你得能判断MOUNT的盘是U盘!
人总在矛盾中徘徊。。。
dauphinli
驱动牛犊
驱动牛犊
  • 注册日期2007-03-28
  • 最后登录2010-11-10
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望37点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-28 16:32
Re:尊敬的大牛大哥们,怎样在U盘插入后,对U盘基本信息(描述符)进行读取,并对U盘进行禁
看看看
humerousman
驱动牛犊
驱动牛犊
  • 注册日期2007-04-12
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分390分
  • 威望40点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-06-01 11:56
先谢谢Devia大哥的及时回复,有你们这些大牛的帮助,我们这些牛犊心里塌实多了!!我回头就试一下
kankanwu
驱动牛犊
驱动牛犊
  • 注册日期2007-06-02
  • 最后登录2007-09-29
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-06-02 15:34
对U盘进行禁用,应该问题不大吧,这个我都解决了.呵呵
   我的问题就是如何让U盘只读,禁止写入
谁知道啊??
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-06-04 14:29
修改返回的scsi数据
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
wwspeter
驱动牛犊
驱动牛犊
  • 注册日期2006-11-10
  • 最后登录2008-11-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-06-16 17:11
如果用SFILTER的代码的话就会出现一个问题
我的SFILTER无法绑定新加的卷


大家好,请大家帮忙来了,我的SFILTER无法绑定新加的卷,原因是生成绑定的设备被删除了
我绑定的是CDROM系统
在打开我的电脑进行刷新之后驱动就进入了绑定卷代码
但是在运行完这些代码后,创建的用于绑定卷的设备对象在DEVICETREE中并没有看到
其中处理的函数有
control
进行绑定
create
fastiodevicecontrol
cleanupclose
fastiodetachdevice
cleanupmountdevice
我不明白为什么在绑定后会处理这些
我用FILESPY绑定了C:
进行刷新只有create的IRP
请大家多指点啊
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-06-18 12:52
引用第9楼wwspeter于2007-06-16 19:11发表的  :
如果用SFILTER的代码的话就会出现一个问题
我的SFILTER无法绑定新加的卷


大家好,请大家帮忙来了,我的SFILTER无法绑定新加的卷,原因是生成绑定的设备被删除了
.......


光驱里面有碟片吗?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部