在U3盘中,U盘可以被Windows系统识别为光驱或者移动存储介质或者本地硬盘,我想知道这个是怎么实现的呢?
在USB协议中,那一块定义了这方面的内容?
我看了下,本来以为是SubClass Code,后来看了usb官方文档,才知道不是有这个来决定的,这个决定是由微软定的吧,跟usb协议没关系?
具体SPEC没研究过。我知道的是U3的U盘似乎会报两个USB设备给HOST:存储设备和光驱。
USB规范定义没有错,每个设备都会遵循这个规范来标识自己的设备信息
通过获取到设备信息进行分类
正好我也在找这个答案。
顺便给楼主共享下
系统找到设备后,会发送inquiry命令给usb设备
而usb设备的回复中包含了设备的类型,到底是U盘,还是光盘!
参考如下
SCSI_Primary_Commands-3.pdf
的145页。
Table 83 — Peripheral device type (part 1 of 2)
00h SBC-2 Direct access block device U盘
05h MMC-4 CD/DVD device光盘
等接分!