我正在开发基于USB的大容量存储设备。通过SCSI命令进行控制。
此设备的一个LUN是“隐藏”,所有命令(INQUIRY和REQUEST SENSE除外)都返回COMMAND FAILED(1)。 REQUEST SENSE返回NOT READY(MEDIUM NOT PRESENT)。
尽管如此,Windows反复发送READ CAPACITY。除了返回COMMAND FAILED之外,我还尝试使用所有零数据返回COMMAND PASSED(0)。但这导致Windows停止发送任何进一步的命令,并且设备枚举停止。
对这些请求的正确回应是什么?
答案 0 :(得分:0)
我怀疑你必须深入研究以下几点:
http://www.t10.org/drafts.htm#SCSI3_UAS
http://msdn.microsoft.com/en-us/library/ff567427%28v=vs.85%29.aspx
:
9.1阅读能力(10)基本验证测试
测试断言GUID:6bfd177d-c6a7-11da-94f5-00123f3a6b601
Windows徽标计划:STORAGE-0003基于SCSI的设备符合SCSI协议要求
附加信息:测试:TD-28.25 SCSI一致性测试检查READ CAPACITY(10)命令是否返回正确的磁盘容量信息。信息:测试发送命令以请求逻辑块地址的数量和磁盘的块长度。应用:测试向设备发送READ CAPACITY(10)命令(0x25),以请求逻辑块地址的数量和磁盘的块长度。期望:ScsiStatus的值应为0x0。
9.2阅读能力(10)PMI测试 测试断言GUID:6bfd177e-c6a7-11da-94f5-00123f3a6b601 Windows徽标计划:STORAGE-0003基于SCSI的设备符合SCSI协议要求
9.3阅读能力(10)负面测试 测试断言GUID:6bfd177f-c6a7-11da-94f5-00123f3a6b601 Windows徽标计划:STORAGE-0003基于SCSI的设备符合SCSI协议要求