USB Eject

来源:互联网 发布:网络推广 推荐书籍 编辑:程序博客网 时间:2024/05/16 16:00
Eject,在不停止USB设备的同时,停止对存储设备的读写。此时不产生读写操作,对FLASH等应该没有影响。
对于一些内置式的USB设备,Eject是较好的选择。
#2
好象没有什么标准的说法,不过抓了下包,两者还是有很大区别

安全删除 : 确实很安全, QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 查询设备是否可以删除,然后关闭设备

弹出: 只关闭设备,不删除, FLUSH QUENEN -> CLOSE ,最后再点击删除,也会执行QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 也很安全

不过如果直接拔出设备,CLOSE -> SURPRISE REMOVAL 可疑性拔出,处理流程和上面正常不一样

从上面可以看出,先弹出,在直接拔出,应该问题不大,因为在拔出之前设备已经处理了数据流并关闭
#3
Remove是卸载设备,相当于把磁盘驱动器卸掉。
Eject是弹出介质,相当于从驱动器中把盘拿走。
eject会进行flush,以及close设备,此后设备就安全了
Eject是安全的。
 
不停止USB设备的同时,停止对存储设备的读写。此时不产生读写操作,对FLASH等应该没有影响。 
对于一些内置式的USB设备,Eject是较好的选择
QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 查询设备是否可以删除,然后关闭设备
弹出:只关闭设备,不删除, FLUSH QUENEN -> CLOSE ,最后再点击删除,也会执行QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 也很安全
 
这个跟微软的关系不大,微软只是制订了usb插拔通信的时序,诸如QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 之类

但是具体每个IRP或SRB里面怎么实现,是硬件厂商的事,需要考虑固件和驱动程序
原创粉丝点击