1

我正在开发基于 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 完全停止发送任何进一步的命令,并且设备枚举停止。

对这些请求的正确回应是什么?

4

1 回答 1

0

我怀疑您将不得不挖掘以下一些内容:

http://www.t10.org/drafts.htm#SCSI3_UAS
http://msdn.microsoft.com/en-us/library/ff567427%28v=vs.85%29.aspx

来自 MSDN SCSI 合规性测试:

9.1 读取能力 (10) 基本验证测试 测试断言 GUID:6bfd177d-c6a7-11da-94f5-00123f3a6b601 Windows 徽标程序:STORAGE-0003 基于 SCSI 的设备符合 SCSI 协议要求附加信息:测试:TD-28.25 SCSI 合规性测试检查READ CAPACITY (10) 命令返回正确的磁盘容量信息。Info:测试发送命令请求磁盘的逻辑块地址数和块长度。Apply:测试向设备发送READ CAPACITY(10)命令(0x25)请求磁盘的逻辑块地址个数和块长度。预期:ScsiStatus 的值应为 0x0。

9.2 读取能力 (10) PMI 测试测试断言 GUID:6bfd177e-c6a7-11da-94f5-00123f3a6b601 Windows 徽标程序:STORAGE-0003 基于 SCSI 的设备符合 SCSI 协议要求

9.3 读取容量 (10) Negative Test Test Assertion GUID:6bfd177f-c6a7-11da-94f5-00123f3a6b601 Windows 徽标程序:STORAGE-0003 基于 SCSI 的设备符合 SCSI 协议要求

于 2011-08-01T02:35:22.697 回答