USB 2.0 和 3.0 SCSI 合规性测试(徽标)

此自动化测试验证发送到通用串行总线 (USB) 设备的小型计算机系统接口 (SCSI) 命令描述符块 (CDB)。

测试详细信息

   
规范
  • Device.Storage.Hd.Usb3.Compliance
  • Device.Storage.Hd.Usb.Compatibility
  • Device.Storage.Hd.Uas.Compliance
平台
  • Windows 10,客户端版本 (x86)
  • Windows 10,客户端版本 (x64)
  • Windows Server 2016 (x64)
支持的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 版本 1607
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一次更新
预计运行时间(以分钟为单位) 5
类别 兼容性
超时(以分钟为单位) 300
需要重启 false
需要特殊配置 false
类型 automatic

 

其他文档

此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:

运行测试

在运行测试之前,请按照测试要求(硬盘驱动器测试先决条件)中所述完成测试设置

故障排除

有关 HLK 测试失败的常规故障排除,请参阅排查 Windows HLK 测试失败问题

有关故障排除信息,请参阅排查 Device.Storage 测试问题

该测试会将结果写入日志文件 Scsicompliance.wtl 和 Scsicompliance.wtl.txt。 使用这些结果来确定:

  • 设备是否符合 SCSI 规范。

  • 设备支持的可选 SCSI 命令。

若要通过测试,USB 设备必须支持每个必需的命令,并且必须完全符合这些命令的要求。 每个命令具有不同的通过或失败阈值。在测试和日志文件中显式指定期望。

还会测试可选命令。 如果设备支持可选命令但发现其不符合命令的要求,则测试将会失败。 如果设备不支持可选命令,则测试将会通过。

还会测试可选命令。 如果设备支持可选命令但发现其不符合命令的要求,则测试将会失败。 如果设备不支持可选命令,则测试将会通过。

在测试期间,如果你在删除有故障的 LUN 时遇到问题或者无法从存储控制器创建 LUN,请执行以下步骤:

  1. 在运行此项测试之前,验证存储设备是否正常工作。 打开 Diskmgmt.msc 并选择磁盘。 确保你可以使设备联机并处于初始化状态。

  2. 重启 Windows HLK 测试计算机。

  3. 选择并重新运行 USB SCSI 合规性测试。 在运行此项测试之前不要运行任何其他测试。

  4. 如果测试失败,请将日志记录详细级别设置为 4(测试日志记录的最高级别),并逐个地运行失败的命令数据块 (cdbs)。 这会显示发送了哪些数据以及返回了哪些数据。 我们前面已经看到了几种情况:几个 cdb 完成后测试失败但独立通过。 如果存在这种情况,则意味着固件或测试有问题。 可能存在设备重置导致设备从总线崩溃并导致后续命令失败。 若要解决此问题,请执行以下步骤:

    1. 从 Windows HLK 控制器中复制测试二进制文件 (Scsicompliance.exe)。 此文件位于:\\controllername\tests\[processorarchitectureofyourclient]\NTTEST\DriversTest\storage\wdk\

    2. 从 Windows HLK 控制器中复制 wttlog.dll 文件。 此文件位于:\\<controllername>\Tests\<processorarchitectureofyourclient >\wtt

    3. 将这两个文件放在测试计算机上的单独文件夹中。

    4. 在命令提示符下,从包含测试二进制文件的目录键入以下命令:Scsicompliance.exe /device <deviceID> /verbosity 4 /operation test /scenario <scenario> /Version <version> /protocol <protocol> /CDB <failingcdbname>

      注意

         可以通过检查测试日志中的 repro 行找到 DeviceID、scenario、version 和 protocol 的值。 可以结合 /? 选项运行测试二进制文件 (scsicompliance.exe /?) 来找到 failingcdbname。

       

    5. 返回同一目录并查看结果,看看是否可以确定测试失败的原因。

    6. 如需更多帮助,请收集 txt 和 wtl 日志并与 Microsoft 客户支持服务人员共享这些日志。

更多信息

命令语法

命令选项 说明

Scsicompliance.exe

下面列出了用于测试的选项。

/device

运行测试的设备。 示例:/Device <物理设备路径>

/operation

要运行的操作。 示例:/Operation Test

/scenario

要测试的功能。 示例:/Scenario USBDisk

/version

设备的 USB 版本号。 示例:/version 3

/protocol

设备的 USB 协议。 示例:/protocol UAS

/verbosity

日志记录详细级别。 值越大,输出越详细。 示例:/Verbosity 4

注意

   有关此测试二进制文件的命令行帮助,请键入 /?。

 

文件列表

文件 位置

Scsicompliance.exe

<[testbinroot]>\nttest\driverstest\storage\wdk

 

参数

参数名称 参数说明
DiskDeviceObjLink 要测试的磁盘的设备路径,示例:\\.\disk0
WDKDeviceID 待测试设备的实例路径
LoggingVerbosity LoggingVerbosity:日志记录的详细信息。 级别是累积式的。 0 = 断言和结果。 1 = 详细信息(默认值)。 2 = CDB、数据和感知信息。 3 = 调试和详细的模式页信息。 4 = 内存使用率
ScenarioId 场景测试名称:可能的值:USBDisk、USBCardReader
选项 选项
ScsiComplianceDevice 设备路径
LLU_NetAccessOnly 用于访问测试文件共享的用户帐户。
LLU_LclAdminUsr 用于运行测试的用户帐户。
OperationId 要运行的操作
版本 USB 版本:可能的值:2、3
协议 USB 协议:可能的值:BOT、UAS
QueryIsUsb3
QueryUAS
QueryRMB
Destructive (0,1) 0= 被动,1= 破坏性
QueryUFDRotationalMedia 用于检索属性的查询收集器
QueryWTGDevice 用于检索属性的查询收集器
RM 旋转介质:0 或 1