大家都进来谈谈U盘安全删除时的一个现象

bcxx_qin 2010-03-26 10:34:28
现在很多U盘上都带有一个LED灯,在选择安全删除的时候(还没从主机拔出),LED灯可以自动熄灭。在USB协议里面没有这种安全删除处理的数据包呀?他们是怎么做到的呀?

使用BUS HOUND抓包,可以发现,U盘都是配置了3个Endpoint(2个BULK, 1个INTERRUPT,Endpoint0除外)。明明是使用BULK ONLY传输方式,为什么会有一个INTERRUPT Endpoint,干什么用?

不解呀。。。
...全文
129 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcxx_qin 2010-03-30
  • 打赏
  • 举报
回复
此问题,以解决。 被主机Suspend是正解。 USB设备一般都会以suspend中断的形式通知USB设备应用程序。
网上还真没找到这方面的资料。此贴解之。
博说医械研发 2010-03-29
  • 打赏
  • 举报
回复
HOST停止供电肯定不会,因为我们的设备只由USB供电的时候即使点击删除硬件且成功后,机器仍然处于开机状态,说明HOST还在给Device供电。
zswolf2000 2010-03-29
  • 打赏
  • 举报
回复
PNP消息里面有关于电源的,你删除u盘时,会发送这类消息,然后PC就停止供电(我猜的,你可以看看USB spce)
kyzf 2010-03-26
  • 打赏
  • 举报
回复
好贴,MARK,期待 学习下。

帮顶!!

博说医械研发 2010-03-26
  • 打赏
  • 举报
回复
我现在也遇到U盘删除的问题,等待高手解答一下!

顶起来!
bcxx_qin 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sunrain_hjb 的回复:]
LED灯熄灭,估计是因为安全删除后USB停止供电导致的,
USB停止供电后再拔出USB设备,才是所谓的安全删除啊。
[/Quote]

非此解也。 U盘安全删除后,主机并没有停止供电。 有一个很好的证明:可以找到一些方法,重新将安全删除后的U盘直接重新mount上,不用重新拔插。
sunrain_hjb 2010-03-26
  • 打赏
  • 举报
回复
LED灯熄灭,估计是因为安全删除后USB停止供电导致的,
USB停止供电后再拔出USB设备,才是所谓的安全删除啊。
bcxx_qin 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zihan 的回复:]
因为U盘往往采用微软 自带的驱动,所以可以排除PC和设备之间自定义的协议.

但是简单分析,可能是下面的两个方法:

1. U盘插入之后,PC会一直轮训设备的信息,如果删除之后,驱动被卸载,那么就不会下发这些命令,设备检查到之后,就可以关闭LED.

2. USB上面,驱动被卸载之后,在总线上面,会把设备Suspend,设备在检查到这个状态,也可以关闭LED.很多 采用这个办法.

……
[/Quote]

个人觉得,第一种方法其实不怎么现实。因为轮训间隔还是有一段时间的,算上允许的延迟的话,U盘不可能那么快就判断自己已经被删除了。这个时间就很难把握了。所以。。。。
第二种方法倒是有可能。就不晓得怎么检查这个状态了。至少我现在这个板子上,没有看到suspend中断。
博说医械研发 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zihan 的回复:]

1. U盘插入之后,PC会一直轮训设备的信息,如果删除之后,驱动被卸载,那么就不会下发这些命令,设备检查到之后,就可以关闭LED.

[/Quote]
这一点比较像,用BUSHOUND查看,当U盘插入的时候PC会频繁的向U盘发数据,然后U盘再把相同的数据返回,而当删除设备后,PC不再向U盘发数据,U盘也就不再返回。
但是奇怪的是我用WINCE做的USB MASS STORAGE,PC不会一直向设备发数据,不知道问题出在哪里。
ykhufuhai 2010-03-26
  • 打赏
  • 举报
回复
路过~~
zihan 2010-03-26
  • 打赏
  • 举报
回复
因为U盘往往采用微软 自带的驱动,所以可以排除PC和设备之间自定义的协议.

但是简单分析,可能是下面的两个方法:

1. U盘插入之后,PC会一直轮训设备的信息,如果删除之后,驱动被卸载,那么就不会下发这些命令,设备检查到之后,就可以关闭LED.

2. USB上面,驱动被卸载之后,在总线上面,会把设备Suspend,设备在检查到这个状态,也可以关闭LED.很多 采用这个办法.

至于INT的EP,应该是特殊情况吧.
bcxx_qin 2010-03-26
  • 打赏
  • 举报
回复
都半天了,也没见人来解答呀。郁闷中。现在U盘技术已经很开源了吧,怎么了解的人也很少呢。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧