首页
社区
课程
招聘
[求助]u盘的热插拔怎么实现
发表于: 2013-9-6 08:36 6541

[求助]u盘的热插拔怎么实现

2013-9-6 08:36
6541
类似发送IRP_MN_START_DEVICE、IRP_MN_REMOVE_DEVICE。或者用API实现u盘的动态卸载,动态加载。类似的功能

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就是类似vmware的,可以任意让USB在HOST主机和各虚拟机之间自由切换。devcon程序可以实现这个功能,但是每次都要重新加载usb驱动程序挂载的时候比较慢,不是很友好。
2013-9-6 08:43
0
雪    币: 558
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你这个项目应该才刚开始做吧,没那么简单的,这个貌似需要用到驱动来实现的
2013-9-6 10:01
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我就是用磁盘过滤来做的,在权限下发的时候,不能立即生效,u盘在插入状态目前是只读,想变成拒绝,必须重新插拔下,下发的权限才能生效。
2013-9-6 10:43
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
老大,是不是这样引用回复,你才能看到啊
2013-9-6 10:45
0
雪    币: 229
活跃值: (508)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
6
给hcd 发送 IOCTL_USB_HUB_CYCLE_PORT就行了,参数可以指定端口
2013-9-6 13:58
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
大牛,端口是随便写吗?不知道为什么总是返回失败啊!错误代码  50 意思是The request is not supported
2013-9-6 14:55
0
雪    币: 558
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
磁盘初始化结束以后,就不能更改”只读/拒绝“的属性了

如果你只是想让磁盘只读的话,那么你过滤Read/write请求不就好了,如果是写,直接返回失败不就好了?
2013-9-6 17:09
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
大牛谢谢你的回复,我是做的磁盘透明加解密。读写权限下发是直接下发到内存中的。你说的那种方法,我知道。我现在只有这一种思路了。就是实现u盘热插拔。
2013-9-6 17:22
0
雪    币: 558
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
热插拔就不懂了,没那么做过,这里发现了一篇文章,你可以看看,好像那个ioctl在win7下面是不能用的

http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/e2ae1ead-d733-41d0-a780-a50ac372822b/using-ioctlusbhubcycleport-to-simulate-unpluggingplugging-in-a-device-in-xp
2013-9-6 17:29
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢你。我现在准备用文件过滤来辅助完成这个功能,主要是比较复杂,不是简单的设置只读,拒绝什么的。所以现在IRP_MJ_READ处理已经不能满足需求了。
2013-9-6 17:36
0
游客
登录 | 注册 方可回帖
返回
//