wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1781回复:10

windows下的“拔出或弹出硬件”做了什么操作?能让u盘安全的拔出?

楼主#
更多 发布于:2004-12-25 11:26
windows下的“拔出或弹出硬件”做了什么操作,能让u盘安全的拔出?

我已经用坏2个u盘了,现在还不知道原因,可能是因为在我的usb 主机上时,没有断电就直接把设备拔出来造成的,所以想实现这个功能。 可想不通windows 是怎么实现的?
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-25 13:19
windows下的“拔出或弹出硬件”做了什么操作,能让u盘安全的拔出?

我已经用坏2个u盘了,现在还不知道原因,可能是因为在我的usb 主机上时,没有断电就直接把设备拔出来造成的,所以想实现这个功能。 可想不通windows 是怎么实现的?
 


现在U盘质量很差的
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-26 11:56
windows下的“拔出或弹出硬件”做了什么操作,能让u盘安全的拔出?

我已经用坏2个u盘了,现在还不知道原因,可能是因为在我的usb 主机上时,没有断电就直接把设备拔出来造成的,所以想实现这个功能。 可想不通windows 是怎么实现的?
 


“安全删除设备”的动作,其实就是会调用驱动里的 CLOSE ,还有就是Dispatch PNP里的IRP_MN_REMOVE_DEVICE和IRP_MN_STOP_DEVICE,然后你拔出设备的时候,就会调用UNLOAD例程,这样驱动就可以安全结束。
至于你说的用坏u盘,应该是你把u盘里的文件系统块搞坏了,导致系统识别不出来,一般只要用u盘控制芯片的制造商用flash初始化程序初始化flash就可以啦~~
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-26 12:03
我想不一定非要跟windows做成一样,只要能够确定拔出设备之前,设备没有在“忙”,就可以安全的拔出了.......
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-12-26 19:26
请问楼上你说的没有在忙是不是只要没有在读写就行啊。

不用非得把这个端口power off。
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-27 15:13
是啊,因为有操作的时候,突然断电,就可能导致操作失败.所以,可以发个CBW下去,看看设备有没有响应就可以知道在不在忙拉...
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-27 15:17
是啊,因为有操作的时候,突然断电,就可能导致操作失败,一些暂存的信息就会丢失.所以,可以发个CBW下去,看看设备有没有响应就可以知道在不在忙拉...应该不用非得把设备poweroff.

不知道你的host在哪个操作系统下啊?应该都有安全删除设备的方法的.
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2004-12-27 16:23
host 驱动是自己写的,现在就是想实现。

目前估计 windows 仅仅是把设备所在的端口 disable 了。

Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-27 21:15
这个没有仔细跟踪过,不太清楚了 。。。。
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2004-12-28 07:50
放分了~
pioneerscj
驱动牛犊
驱动牛犊
  • 注册日期2004-10-31
  • 最后登录2009-06-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-01-02 12:40
楼主你好:
   小弟我也想作个USB主机可是水平太有限,不知道从何下手,希望能得到点高手指点。
   小弟的QQ 是173260566。
   大侠的呢? 恭候大侠的真传。
   小弟感激不尽。
游客

返回顶部