Eject U盘底层解析
Eject U盘底层解析
1、插上U 盘
OS 会发送SCSI PREVENT ALLOW MEDIUM REMOVAL
将设置成 Volume removal shall be prevented。
目的是告诉U盘, 我不同意remove 你就不可以remove。这里有人可能要奇怪了,U盘怎么会自己去remove 呢? 实际上,这个SCSI 是由OS 发下来的, 而不是由U盘的driver 发下来的,这个SCSI是OS为了防止driver 自行remove U盘而设计的。
格式如下:需要关注的是
PREVENT
的值, 它决定是否允许 remove U盘。
2、 Eject U盘
这个过程实际上分为两步:
1) OS发送SCSI PREVENT ALLOW MEDIUM REMOVAL
将设置成 Volume removal shall be allowed。
2) U盘driver 发送SCSI LOAD UNLOAD
来移除U盘。
LOAD UNLOAD command 的格式如下: