Wince 模拟u盘问题。
现在想把wince5 模拟成U盘,用了wince5的源码usbfn,storage目录中。
注册表也做了相应的改动,现在pc机已经能够识别出Upan。
可是在通信过程中,PC机老是会发 0x23指令,而次指令并不支持。导致reset。
在网上查到:
一个U盘插上,Windows要连续的发送12h(INQUIRY),23h(READ FORMAT CAPACITIES),25h(READ
CAPACITY),28h(READ10),最后的这个READ10是要读取U盘的MBR。
如果这个READ10成功了,主机可能还会发送MODE SENSE命令。
但是0x23不是SCSI指令集, 此指令是在UFI协议中才定义的。
bInterfaceSubClass这个值决定了使用的是何种命令传输集,1为RBC,2为SFF,4为UFI,6为SCSI.
而我在注册表,发给PC的interface descriptor中都是为6, 既是SCSI协议,
现在为什么PC机还会发0x23指令呢?