社区
驱动开发/核心开发
帖子详情
大家都进来谈谈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
打赏
收藏
大家都进来谈谈U盘安全删除时的一个现象
现在很多U盘上都带有一个LED灯,在选择安全删除的时候(还没从主机拔出),LED灯可以自动熄灭。在USB协议里面没有这种安全删除处理的数据包呀?他们是怎么做到的呀? 使用BUS HOUND抓包,可以发现,U盘都是配置了3个Endpoint(2个BULK, 1个INTERRUPT,Endpoint0除外)。明明是使用BULK ONLY传输方式,为什么会有一个INTERRUPT Endpoint,干什么用? 不解呀。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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盘技术已经很开源了吧,怎么了解的人也很少呢。
关于启动
U盘
制作
共6篇 本人学习之路收集滴 适合新手第一篇
U盘
硬件基础1.
U盘
硬件组成是什么主控芯片+存储芯片主控芯片存储控制闪存的信息。有的
U盘
坏了,通过换主控,内容还不丢失,只要闪存没坏。闪存,是外国鬼子搞出来的,...
java面试题
(2)同步非阻塞NIO NIO主要是想解决BIO的大并发问题,BIO是每
一个
请求分配
一个
线程,当请求过多
时
,每个线程占用一定的内存空间,服务器瘫痪了。 JDK1.4开始支持NIO,适用于连接数目多且连接比较短的架构,比如...
0.计算机概论
最近更新日期:20//由过去的经验当中...因此,鸟哥就自作聪明的新增
一个
小章节来
谈谈
计概啰!因为鸟哥也不是信息相关学科出身,所以,写的不好的地方请大家多多指教啊!^_^第零章、计算机概论电脑:辅助人脑的好工具。
如何运营
一个
论坛
论坛运营的阶段性工作实操...这就涉及到
一个
关键的问题那论坛运营。凡事不能一蹴而就,得一步一步的来,论坛也是如此,必须有阶段性有步骤的一步一步走稳,下面就来
谈谈
如何有步骤有阶段性的对论坛进行运营管理。主要分
【java】Java经典面试题整理(附答案)
所谓反射,是java在运行
时
进行自我观察的能力,通过class、constructor、field、method四个方法获取
一个
类的各个组成部分。在Java运行
时
环境中,对任意
一个
类,可以知道类有哪些属性和方法。这种动态获取类的信息...
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章