Eject,在不停止USB设备的同时,停止对存储设备的读写。此时不产生读写操作,对FLASH等应该没有影响。
对于一些内置式的USB设备,Eject是较好的选择。
对于一些内置式的USB设备,Eject是较好的选择。
#2
好象没有什么标准的说法,不过抓了下包,两者还是有很大区别
安全删除 : 确实很安全, QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 查询设备是否可以删除,然后关闭设备
弹出: 只关闭设备,不删除, FLUSH QUENEN -> CLOSE ,最后再点击删除,也会执行QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 也很安全
不过如果直接拔出设备,CLOSE -> SURPRISE REMOVAL 可疑性拔出,处理流程和上面正常不一样
从上面可以看出,先弹出,在直接拔出,应该问题不大,因为在拔出之前设备已经处理了数据流并关闭
安全删除 : 确实很安全, QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 查询设备是否可以删除,然后关闭设备
弹出: 只关闭设备,不删除, FLUSH QUENEN -> CLOSE ,最后再点击删除,也会执行QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 也很安全
不过如果直接拔出设备,CLOSE -> SURPRISE REMOVAL 可疑性拔出,处理流程和上面正常不一样
从上面可以看出,先弹出,在直接拔出,应该问题不大,因为在拔出之前设备已经处理了数据流并关闭
#3
Remove是卸载设备,相当于把磁盘驱动器卸掉。
Eject是弹出介质,相当于从驱动器中把盘拿走。
Eject是弹出介质,相当于从驱动器中把盘拿走。
eject会进行flush,以及close设备,此后设备就安全了
Eject是安全的。
Eject是安全的。
不停止USB设备的同时,停止对存储设备的读写。此时不产生读写操作,对FLASH等应该没有影响。
对于一些内置式的USB设备,Eject是较好的选择
QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 查询设备是否可以删除,然后关闭设备
弹出:只关闭设备,不删除, FLUSH QUENEN -> CLOSE ,最后再点击删除,也会执行QUERY REMOVE DEVICE -> CLOSE -> REMOVE DEVICE 也很安全
对于一些内置式的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里面怎么实现,是硬件厂商的事,需要考虑固件和驱动程序
但是具体每个IRP或SRB里面怎么实现,是硬件厂商的事,需要考虑固件和驱动程序