SCSI 合规性测试 2.0(徽标)

此自动化测试将验证操作系统支持的块存储设备(RAID 适配器或磁盘目标)是否完全符合 SCSI-3 主要命令 3 (SPC-3) 中或更高版本以及 SCSI 块命令 2 (SBC-2) 或更高版本的规范中所述的小型计算机系统接口 (SCSI) 标准。 若要查看这些规范,请转到技术委员会 T10 SCSI 存储接口

确保块设备和操作系统保持符合这些标准能使系统变得更加稳健可靠。 尽管某些块设备可能不使用 SCSI 传输,但操作系统会使用 SCSI 命令来与这些设备通信(不属于 RAID 集的单个 ATA 磁盘驱动器除外)。

该测试使用 SCSI 直通请求 (IOCTL_SCSI_PASS_THROUGH) 构造 SCSI 命令描述符块 (CDB) 并将其发送到设备。 该测试评估命令的结果以验证合规性。

注意

   如果将此项测试作为基于存储 RAID 硬件的 RAID(存储阵列)提交的一部分运行,并且存储阵列支持多路径 I/O (MPIO),则必须将 MPIO 配置为使用仅限故障转移的策略,并将目标存储磁盘设置为对所有支持 MPIO 的磁盘使用相同的活动路径。

如果将此项测试作为基于存储 RAID 硬件的 RAID(存储阵列)提交的一部分运行,请确保将 LUN0 配置为最大大小的非启动 LUN。

 

测试详细信息

   
规范
  • Device.Storage.Hd.ScsiProtocol.SpcCompliance
  • Device.Storage.Controller.Raid.BasicFunction
  • Device.Storage.Hd.ScsiProtocol.ReferenceSpec
  • Device.Storage.Hd.ScsiProtocol.SamCompliance
平台
  • Windows 10,客户端版本 (x86)
  • Windows 10,客户端版本 (x64)
  • Windows Server 2016 (x64)
  • Windows 10,客户端版本 (Arm64)
支持的版本
  • 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 命令

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

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

注意

   如果在执行此项测试时出错,则日志文件中会指出相关的问题,并通过对接受测试的驱动程序施加压力来生成停止错误。

 

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

  1. 在运行此项测试之前,验证存储设备是否正常工作。 打开 diskmgmt.msc,选择磁盘,并确保可将设备置于“联机”和“已初始化”状态。

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

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

  4. 在同一测试客户端和同一测试存储设备上运行 SCSI 合规性测试(不是 SCSI 合规性测试 2.0(徽标))。 如果测试再次失败,请验证存储设备是否正常工作。 如果测试在执行步骤 3 和步骤 4 期间失败,请将日志记录详细级别设置为 4(测试日志记录的最高级别),并逐个地运行失败的命令数据块 (cdbs)。 这会显示发送了哪些数据以及返回了哪些数据。 测试可能会在完成多个 cdbs 后失败,但单独运行却可以通过。 如果存在这种情况,则意味着固件或测试有问题。

如果设备重置导致设备与总线不兼容并且后续命令失败,请执行以下步骤:

  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> /CDB <failingcdbname>

    注意

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

     

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

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

如果针对 Windows Server 2003 运行此项测试,请确保磁盘或 LUN 不是 MPIO 伪 LUN。 不支持 Windows Server 2003 上的 MPIO。

详细信息

将验证以下命令:

注意

   有关更多参考信息,请访问技术委员会 T10 SCSI 存储接口网站。

 

命令:Test Unit Ready

标题:TEST UNIT READY 基本验证测试

说明:使用 TEST UNIT READY 命令可以检查逻辑单元是否准备就绪。 这并不是一个自测请求。 如果逻辑单元能够接受相应的介质访问命令且不返回 CHECK CONDITION 状态,则此命令应返回 GOOD 状态。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.33 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:这是一个必需的 SPC-3/SPC-4 命令。

命令:Request Sense

标题:REQUEST SENSE (6) 支持测试

说明:检查 Request Sense 命令是否受支持并返回 GOOD 状态。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.27 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:此命令在 SPC-3/SPC-4 中是必需的,发起者使用此命令来检索失败命令的错误感知数据。

标题:REQUEST SENSE (6) 响应代码测试

说明:验证响应代码是 0x70、0x71、0x72 还是 0x73

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.27 部分

期望:响应代码 == 0x70、响应代码 == 0x71、响应代码 == 0x72 或响应代码 == 0x73

标题:REQUEST SENSE (6) 感知数据长度测试

说明:验证感知数据的长度是否正确(传输的数据与命令响应报告的数据长度匹配)。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.27 部分

期望:附加感知长度 <= 感知数据大小 - 8。

命令:Read 6

标题:READ (6) 基本验证测试

说明:设备必须正确返回 GOOD (0x0) SCSI 状态和前两个数据块。 此项测试发送两个 READ 命令,读取两个不同但重叠的数据块。 然后,它比较重叠的数据。 如果读取操作之间的重叠数据相同,则返回 true(这意味着两个命令正确读取了相同的数据)。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.5 部分

期望:ScsiStatus == 0x0。

理由:某些应用程序仍在使用 Read 6,尚未过渡到 Read 10。 因此,我们将检查是否已实现此命令,然后继续测试。

标题:READ (6) 顺序读取测试

说明:设备必须正确读取 1000 个有序数据块。 此项测试发送该命令 1000 次,从随机块地址开始按顺序读取 1024 字节的数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.5 部分

期望:所有 READ (6) 命令都成功。

标题:READ (6) 随机读取测试

说明:设备必须正确读取 1000 个随机数据块。 此项测试发送该命令 1000 次,读取随机逻辑块地址处的数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.5 部分

期望:所有 READ (6) 命令都成功。

标题:READ (6) 清除磁盘缓存后的读取测试

说明:清除 12 MB 磁盘缓存后,设备必须正确返回数据。 此项测试首先读取 12 MB 的有序数据以供稍后进行验证。 然后,它通过读取 12 MB 随机数据来清除磁盘缓存。 最后,它读取相同的 12 MB 有序数据,以查看这些数据是否与首次读取的数据相同。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.5 部分

期望:清除缓存后读取的 12 MB 数据正确。

命令:Write 6

标题:WRITE (6) 基本功能测试

说明:该命令将一个数据块正确写入设备。此项测试将我们要写入的数据与完成写入操作后由 READ 返回的数据进行比较。 如果数据相同,这意味着 WRITE 命令将数据正确写入了磁盘。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.24 部分

期望:ScsiStatus == 0x0。

理由:某些应用程序仍在使用 Write 6,尚未过渡到 Write 10。 因此,我们将检查是否已实现此命令,然后继续测试。

标题:WRITE (6) 顺序写入测试

说明:该命令正确写入 1000 个有序数据块。此项测试发送该命令 1000 次,从随机逻辑块地址开始按顺序写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.24 部分

期望:所有 WRITE (6) 命令都成功。

标题:WRITE (6) 随机写入测试

说明:该命令正确写入 1000 个随机数据块。此项测试发送 WRITE 命令 1000 次,在随机逻辑块地址处写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.24 部分

期望:所有 WRITE (6) 命令都成功。

标题:WRITE (6) 禁用磁盘缓存后的写入测试

说明:该命令在禁用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.24 部分

期望:正确写入 12 MB 数据。

标题:WRITE (6) 启用磁盘缓存后的写入测试

说明:该命令在启用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它发送 SYNCHRONIZE CACHE (10) 命令,以将缓存中的逻辑块地址与磁盘中的逻辑块地址同步。 最后,它将读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.24 部分

期望:正确写入 12 MB 数据。

命令:Inquiry

标题:INQUIRY 基本验证测试

说明:设备在对 INQUIRY 命令的响应中,必须返回 GOOD (0x0) SCSI 状态以及小于或等于 255 字节的数据,并将 ALLOCATION LENGTH 字段设置为 255 (0xFF) 字节。 ALLOCATION LENGTH 字段指定应用程序客户端为返回的数据分配的最大字节数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态以及小于或等于 255 字节的数据。

标题:用于检查当 PAGE CODE 字段为非零值且 EVPD=0 时是否返回错误的 INQUIRY 测试。

说明:检查当 PAGE CODE 字段为非零值且 EVPD=0 时是否返回错误。 检查当 PAGE CODE 字段为非零值且 EVPD=0 时是否返回错误。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:ScsiStatus == 0x2,CHECK CONDITION。 ScsiStatus == 0x2,CHECK CONDITION。

标题:INQUIRY - 检索标准查询数据。

说明:检查是否可以检索标准查询数据。 检查是否可以检索标准查询数据。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:ScsiStatus == 0x0,GOOD。

标题:INQUIRY - 检查标准查询数据大小。

说明:标准 INQUIRY 数据至少应包含 36 字节。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:数据传输长度 >= 36 字节。

标题:INQUIRY - 测试设备类型字段

说明:检查设备类型字段,确保它是直接访问设备。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:设备类型 == 0x0,直接访问设备。

标题:INQUIRY - 测试外设限定符字段。

说明:检查外设限定符字段。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:外设限定符字段 == 0

标题:INQUIRY - 版本字段测试

说明:设备必须返回 0x4、0x5 或 0x6 的有效版本字段

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:对于非 SCSI 总线类型,版本为 0x4 (SPC-2) 或更高;对于 SCSI 总线类型,版本为 0x3 (SPC) 或更高。

标题:INQUIRY - 检查响应数据格式。

说明:检查是否为响应数据格式 == 2。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:响应数据格式 == 2。

标题:INQUIRY - 检查附加长度。

说明:检查附加长度字段是否正确。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:附加长度字段 == 总数据大小 - 5

标题:INQUIRY - 检查供应商标识字段。

说明:检查供应商标识字段是否包含有效的 ASCII。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:供应商标识字段包含有效的 ASCII。

标题:INQUIRY - 检查产品标识字段。

说明:检查产品标识字段是否包含有效的 ASCII。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:产品标识字段包含有效的 ASCII。

标题:INQUIRY - 检查产品修订级别字段。

说明:检查产品修订级别字段是否包含有效的 ASCII。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:产品修订级别字段包含有效的 ASCII。

标题:INQUIRY 命令支持数据测试。

说明:设备必须在标准查询数据中设置 HiSup 位。

参考:SCSI 体系结构模型 3 (SAM-3) 修订版 14(或更高版本)规范第 4.9.2 部分

期望:在标准查询数据中设置了 HiSup 位。

标题:INQUIRY - 检查是否支持重要产品页。

说明:检查是否支持重要产品页。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4.4 部分

期望:返回支持的重要产品数据页列表。

标题:INQUIRY - 测试访问每个受支持重要产品数据页。

说明:尝试访问每个受支持的重要产品数据页。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4.4 部分

期望:可访问每个受支持的页(最多 255 字节)。

标题:INQUIRY - 尝试访问单元序列号页 0x80。

说明:检查单元序列号页 0x80 是否受支持,并且是有效的 ASCII。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 7.6.10 部分

期望:ScsiStatus == 0x0,结果是有效的 ASCII。

标题:INQUIRY - 尝试访问设备识别页 0x83。

说明:检查是否支持设备标识页 0x83。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 7.6.3 部分

期望:ScsiStatus == 0x0。

标题:INQUIRY - 检查 VPD 页 0x83 中的标识描述符。

说明:检查标识描述符是否包含有意义的数据。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 7.6.3 部分

期望:所有描述符都符合要求,且包含有意义的数据。

标题:INQUIRY - 检查版本描述符。

说明:检查版本描述符是否符合要求。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.4 部分

期望:存在版本描述符。

命令:Mode Select 6

标题:MODE SELECT (6) 基本测试

说明:检查在 PF 和 SP == 0 的情况下,一个简单的 MODE SELECT 命令是否通过测试

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:我们的存储堆栈使用缓存模式页来打开/关闭设备缓存。 因此,必须能够使用 Mode Select 命令写入模式页。

标题:MODE SELECT 6:MODE SENSE (6) - 尝试获取缓存模式页。

说明:检查对页 0x08 运行简单的 MODE SENSE 命令是否返回 GOOD 状态。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 6:MODE SENSE (6) - 检查可保存参数(PS 位)。

说明:检查缓存模式页的可保存参数位是否为 1。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:PS == 1。

标题:MODE SELECT 6:MODE SENSE (6) - 检查模式参数标头

说明:验证是否 MediumType == 0 且 BlockDescriptorLength == 0。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:MediumType == 0x0 且 BlockDescriptorLength == 0x0

标题:MODE SELECT 6:MODE SENSE (6) - 检查缓存模式页长度。

说明:检查缓存模式页是否为 20 字节。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:cachePageLength == 20 字节。

标题:MODE SELECT 6:MODE SENSE (6) - 获取可更改值。

说明:将缓存模式页的可更改值保存到其他位置

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 6:MODE SENSE (6) - 获取默认值。

说明:将缓存模式页的默认值保存到其他位置。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT (6) - 更改 WCE。

说明:应用 MODE SELECT 以便为设备设置 WCE=0。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 6:MODE SENSE (6) - 检查 WCE 是否已清除。

说明:检查前面的 MODE SELECT 命令是否实际更改了当前模式参数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:WCE 已清除。

标题:MODE SELECT 6:MODE SENSE (6) - 检查保存的值是否已更改。

说明:检查前面的 MODE SELECT 命令是否实际更改了已保存的模式参数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:保存的值已更改。

标题:MODE SELECT (6) - 设置 WCE

说明:应用 MODE SELECT 以设置 WCE。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 6:MODE SENSE (6) - 检查 WCE 是否已设置。

说明:检查前面的 MODE SELECT 命令是否实际设置了 WCE。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:当前值已设置。

标题:MODE SELECT (6) - 尝试还原原始值。

说明:测试 MODE SELECT 是否可将缓存模式页值还原为其原始值。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 6:MODE SENSE (6) - 验证值是否已还原。

说明:检查缓存模式页中的值是否已还原。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.7 部分

期望:当前值等于默认值。

命令:Mode Sense 6

标题:MODE SENSE (6) 基本测试

说明:检查对页 0x3f 运行简单的 MODE SENSE 命令是否返回 GOOD 状态

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:存储堆栈使用缓存模式页来打开/关闭设备缓存。 因此,必须能够使用 Mode Sense 命令读取到模式页。

标题:MODE SENSE (6) - 检查返回数据的大小。

说明:检查是否收到了最少量的数据(即至少模式参数标头)。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:数据传输长度 >= 4 字节

标题:MODE SENSE (6) - 检查模式参数标头

说明:检查模式参数标头长度信息是否有效。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:ModeDataLength = 数据传输长度 - 1 = -1 字节。

标题:MODE SENSE (6) 测试 DBD(禁用块描述符)位。

说明:测试以确保在设置 DBD 位后不返回块描述符。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:块描述符长度 = 0

标题:MODE SENSE (6) - 设置 DBD 位后测试新数据长度。

说明:测试新数据长度是否应等于旧数据长度减去块描述符长度。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:新数据长度 = 旧数据长度

标题:MODE SENSE (6) - 比较设置 DBD 位之前和之后的模式页数据

说明:测试在设置 DBD 位之前和之后的页数据是否相同。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:页数据匹配

标题:MODE SENSE (6) - 测试页控制字段

说明:测试页控制字段的不同值,并强制实施返回数据的大小。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:电脑的每个值的数据长度正确。

标题:MODE SENSE (6) - 扫描所有模式页。

说明:检查模式页 0x3f 数据以检查支持的模式页。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:查找支持的模式页:信息异常控制模式页和缓存模式页。

标题:MODE SENSE (6) - 确保支持必需的模式页

说明:检查模式页 0x3f 中是否存在必需的模式页

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:至少支持缓存和信息异常页。

标题:MODE SENSE (6) - 检查单个模式页

说明:测试以确保我们可以访问每个模式页,并且参数正确

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:应返回页,并且标头应符合要求

标题:MODE SENSE (6) - 检查信息异常模式页

说明:确保信息异常模式页符合要求

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:支持电源状态模式页

标题:MODE SENSE (6) - 检查信息异常模式页

说明:确保信息异常模式页符合要求

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:支持电源状态模式页

标题:MODE SENSE (6) - 检查电源状态模式页。

说明:确保电源状态模式页符合要求

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:支持信息异常模式页

标题:MODE SENSE (6) - 检查缓存模式页。

说明:确保缓存模式页符合要求。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:支持缓存模式页。

标题:MODE SENSE (6) - 检查设备特定的参数

说明:测试是否支持设备特定的参数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.9 部分

期望:无。

命令:Read Capacity 10

标题:READ CAPACITY (10) 基本验证测试

说明:设备必须向数据输入缓冲区返回 GOOD (0x0) SCSI 状态,以及用于描述块设备容量和介质格式的 8 字节参数数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.10 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:格式化操作和初始化需要此命令。

命令:Read 10

标题:READ (10) 基本功能测试

说明:该命令正确读取前两个数据块。此项测试发送两个 READ 命令,用于读取两个不同但重叠的数据块。 然后,它比较重叠的数据。 如果读取操作之间的重叠数据相同,则返回 true(这意味着两个命令正确读取了相同的数据)。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.6 部分

期望:SCSI 状态 == 0x0。

理由:用于从设备读取数据。

标题:READ (10) 顺序读取测试

说明:该命令正确读取 1000 个有序数据块。此项测试发送该命令 1000 次,从随机逻辑块地址开始按顺序读取数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.6 部分

期望:所有 READ (10) 命令都成功。

标题:READ (10) 随机读取测试

说明:该命令正确读取 1000 个随机数据块。此项测试发送该命令 1000 次,在随机逻辑块地址处读取数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.6 部分

期望:所有 READ (10) 命令都成功。

标题:READ (10) 清除磁盘缓存后的读取测试

说明:该命令在清除磁盘缓存后正确读取 12 MB 数据。此项测试首先读取 12 MB 有序数据供稍后验证。 然后,它通过读取 12 MB 随机数据来清除磁盘缓存。 最后,它读取相同的 12 MB 有序数据,以查看这些数据是否与首次读取的数据相同。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.6 部分

期望:清除缓存后读取的 12 MB 数据正确。

命令:Write 10

标题:WRITE (10) 基本功能测试

说明:该命令将一个数据块正确写入设备。此项测试将我们要写入的数据与完成写入操作后由 READ 返回的数据进行比较。 如果数据相同,这意味着 WRITE 命令将数据正确写入了磁盘。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分

期望:ScsiStatus == 0x0。

理由:用于将数据写入设备。

标题:WRITE (10) 顺序写入测试

说明:该命令正确写入 1000 个有序数据块。此项测试发送该命令 1000 次,从随机逻辑块地址开始按顺序写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分

期望:所有 WRITE (10) 命令都成功。

标题:WRITE (10) 随机写入测试

说明:该命令正确写入 1000 个随机数据块。此项测试发送 WRITE 命令 1000 次,在随机逻辑块地址处写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分

期望:所有 WRITE (10) 命令都成功。

标题:WRITE (10) 禁用磁盘缓存后的写入测试

说明:该命令在禁用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分

期望:正确写入 12 MB 数据

标题:WRITE (10) 启用磁盘缓存后的写入测试

说明:该命令在启用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它发送 SYNCHRONIZE CACHE (10) 命令,以将缓存中的逻辑块地址与磁盘中的逻辑块地址同步。 最后,它将读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分

期望:正确写入 12 MB 数据。

标题:WRITE (10) FUA 测试

说明:该命令在缓存和 FUA(强制单元访问)已打开的情况下将数据正确写入磁盘。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.25 部分。

期望:在 FUA 已打开的情况下将数据正确写入磁盘。 所有 WRITE (10) 命令的校验和都正确。

标题:VERIFY (10) 支持测试

说明:验证设备是否支持 VERIFY (10) 命令。 此项测试发出一个简单的 VERIFY (10) 命令,并检查返回代码是否为 0x2(表示不支持)。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.28 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VERIFY (10) 零长度测试

说明:该测试在将逻辑块地址和验证长度设置为 0 的情况下发送 VERIFY (10) 命令。 根据规范,设置为零的验证长度字段指定不验证任何逻辑块。 不应将这种情况视为错误。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.28 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VEIRFY (10) 随机 LBA 测试

说明:该测试在设置“验证长度 = 1”和随机化逻辑块地址(在 0 和最后一个 LBA 之间的随机地址)的情况下发送 VEIRFY (10) 命令。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.28 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VEIRFY (10) 超出容量测试

说明:该测试在设置“验证长度 = 2”并将逻辑块地址设置为最后一个 LBA 的情况下发送 VEIRFY (10) 命令。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.28 部分。

期望:SCSI 状态为 0x2(检查条件)。

命令:Mode Select 10

标题:MODE SELECT (10) 基本测试

说明:检查在 PF 和 SP == 0 的情况下,一个简单的 MODE SELECT 命令是否通过测试

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:Mode Select 6 是必需的,Mode Select 10 是可选的,如果实现,则对其进行测试。

标题:MODE SELECT 10:MODE SENSE (10) - 尝试获取缓存模式页。

说明:检查对页 0x08 运行简单的 MODE SENSE 命令是否返回 GOOD 状态。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 10:MODE SENSE (10) - 检查可保存参数(PS 位)。

说明:检查缓存模式页的可保存参数位是否为 1。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:PS == 1。

标题:MODE SELECT 10:MODE SENSE (10) - 检查模式参数标头

说明:验证是否 MediumType == 0 且 BlockDescriptorLength == 0。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:MediumType == 0x0 且 BlockDescriptorLength == 0x0

标题:MODE SELECT 10:MODE SENSE (10) - 检查缓存模式页长度。

说明:检查缓存模式页是否为 20 字节。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:cachePageLength == 20 字节。

标题:MODE SELECT 10:MODE SENSE (10) - 获取可更改值。

说明:将缓存模式页的可更改值保存到其他位置

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 10:MODE SENSE (10) - 获取默认值。

说明:将缓存模式页的默认值保存到其他位置。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT (10) - 更改 WCE。

说明:将 MODE SELECT 应用于设备的 WCE=0。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 10:MODE SENSE (10) - 检查 WCE 是否已清除。

说明:检查前面的 MODE SELECT 命令是否实际更改了当前模式参数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:WCE 已清除。

标题:MODE SELECT 10:MODE SENSE (10) - 检查保存的值是否已更改。

说明:检查前面的 MODE SELECT 命令是否实际更改了已保存的模式参数。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:保存的值已更改。

标题:MODE SELECT (10) - 设置 WCE

说明:应用 MODE SELECT 以设置 WCE。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 10:MODE SENSE (10) - 检查 WCE 是否已设置。

说明:检查前面的 MODE SELECT 命令是否实际设置了 WCE。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:当前值已设置。

标题:MODE SELECT (10) - 尝试还原原始值。

说明:测试 MODE SELECT 是否可将缓存模式页值还原为其原始值

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:MODE SELECT 10:MODE SENSE (10) - 验证值是否已还原。

说明:检查缓存模式页中的值是否已还原。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.8 部分

期望:当前值等于默认值。

命令:Mode Sense 10

标题:MODE SENSE (10) 基本测试

说明:检查对页 0x3f 运行简单的 MODE SENSE10 命令是否返回 GOOD 状态

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:Mode Sense 6 是必需的,Mode Sense 10 是可选的,如果实现,则对其进行测试。

标题:MODE SENSE (10) - 检查返回数据的大小。

说明:检查是否收到了最少量的数据(即至少模式参数标头)。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:数据传输长度 >= 8 字节

标题:MODE SENSE (10) - 检查模式参数标头

说明:检查模式参数标头长度信息是否有效。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:ModeDataLength = 数据传输长度 - 2 = -2 字节。

标题:MODE SENSE (10) 测试 DBD(禁用块描述符)位。

说明:测试以确保在设置 DBD 位后不返回块描述符。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:块描述符长度 = 0

标题:MODE SENSE (10) - 比较设置 DBD 位之前和之后的模式页数据

说明:测试在设置 DBD 位之前和之后的页数据是否相同。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:页数据匹配

标题:MODE SENSE (10) - 测试页控制字段

说明:测试页控制字段的不同值,并强制实施返回数据的大小。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.10 部分

期望:电脑的每个值的数据长度正确,并且电脑=0 和电脑=2 返回正常状态。

命令:Read 16

标题:READ (16) 支持测试

说明:验证设备是否支持 READ (16) 命令。此项测试发出一个简单的 READ (16) 命令,并检查返回代码是否为 0x2(表示不支持)。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.8 部分

期望:SCSI 状态为 0x0。

标题:READ (16) 基本功能测试

说明:该命令正确读取前两个数据块。此项测试发送两个 READ 命令,用于读取两个不同但重叠的数据块。 然后,它比较重叠的数据。 如果读取操作之间的重叠数据相同,则返回 true(这意味着两个命令正确读取了相同的数据)。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.8 部分

期望:SCSI 状态为 0x0。

理由:如果设备是 64 位 LBA,则必须使用 Read 16 读取整个磁盘。 否则使用实现的命令。

标题:READ (16) 顺序读取测试

说明:设备必须正确读取 1000 个有序数据块。 此项测试发送该命令 1000 次,从随机逻辑块地址开始按顺序读取数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.8 部分

期望:所有 READ (16) 命令都成功。

标题:READ (16) 随机读取测试

说明:该命令正确读取 1000 个随机数据块。此项测试发送 READ (16) 命令 1000 次,在随机逻辑块地址处读取数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.8 部分

期望:所有 READ (16) 命令都成功。

标题:READ (16) 清除磁盘缓存后的读取测试

说明:该命令在清除磁盘缓存后正确读取 12 MB 数据。此项测试首先读取 12 MB 有序数据供稍后验证。 然后,它通过读取 12 MB 随机数据来清除磁盘缓存。 最后,它读取相同的 12 MB 有序数据,以查看这些数据是否与首次读取的数据相同。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.8 部分

期望:清除缓存后读取的 12 MB 数据正确。

命令:Write 16

标题:WRITE (16) 支持测试

说明:验证设备是否支持该命令。此项测试发出一个简单的 WRITE (16) 命令,并检查返回代码是否为 0x2(检查条件)。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:ScsiStatus == 0x0。

标题:WRITE (16) 基本功能测试

说明:该命令将一个数据块正确写入设备。此项测试将我们要写入的数据与完成写入操作后由 READ 返回的数据进行比较。 如果数据相同,这意味着 WRITE 命令将数据正确写入了磁盘。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:ScsiStatus == 0x0。

理由:如果设备是 64 位 LBA,则必须使用 Write 16 写入整个磁盘。 否则使用实现的命令。

标题:WRITE (16) 顺序写入测试

说明:该命令正确写入 1000 个有序数据块。此项测试发送该命令 1000 次,从随机逻辑块地址开始按顺序写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:所有 WRITE (16) 命令都成功。

标题:WRITE (16) 随机写入测试

说明:该命令正确写入 1000 个随机数据块。此项测试发送 WRITE 命令 1000 次,在随机逻辑块地址处写入数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:所有 WRITE (16) 命令都成功。

标题:WRITE (16) 禁用磁盘缓存后的写入测试

说明:该命令在禁用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:正确写入 12 MB 数据。

标题:WRITE (16) 启用磁盘缓存后的写入测试

说明:该命令在启用缓存后正确写入 12 MB 数据。此项测试将 12 MB 数据写入磁盘。 然后,它发送 SYNCHRONIZE CACHE (10) 命令,以将缓存中的逻辑块地址与磁盘中的逻辑块地址同步。 最后,它将读取刚刚写入的 12 MB 数据,以验证刚刚写入的数据是否正确。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.27 部分

期望:WRITE 命令返回的 12 MB 数据正确。

标题:VERIFY (16) 支持测试

说明:验证设备是否支持 VERIFY (16) 命令。 此项测试发出一个简单的 VERIFY (16) 命令,并检查返回代码是否为 0x2(表示不支持)。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.30 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VERIFY (16) 零长度测试

说明:该测试在将逻辑块地址和验证长度设置为 0 的情况下发送 VERIFY (16) 命令。 根据规范,设置为零的验证长度字段指定不验证任何逻辑块。 不应将这种情况视为错误。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.30 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VEIRFY (16) 随机 LBA 测试

说明:该测试在设置“验证长度 = 1”和随机化逻辑块地址(在 0 和最后一个 LBA 之间的随机地址)的情况下发送 VEIRFY (16) 命令。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.30 部分。

期望:SCSI 状态为 0x0 (GOOD)。

标题:VEIRFY (16) 超出容量测试

说明:该测试在设置“验证长度 = 2”并将逻辑块地址设置为最后一个 LBA 的情况下发送 VEIRFY (16) 命令。

参考:SCSI 块命令 3 (SBC-3) 修订版 27(或已发布的版本)规范第 5.30 部分。

期望:SCSI 状态为 0x2(检查条件)。

命令:Report LUNS

标题:REPORT LUNS 基本验证测试

说明:尝试查找与 D.U.T. 对应的 LUN 0,并执行 REPORT LUNS 命令。 此项测试仅根据 SAM-3 在当前目标地址处将 REPORT LUNS 发送到 LUN 0。 此项测试仅根据 SPC-3 发出一个 SELECT REPORT 设置为零的请求。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.21 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态以及小于或等于 255 字节的数据。

理由:Report LUN 用于发现设备上的 LUN。 此命令对于 UAS 是必需的。 BOT 改用特定于 GetMaxLun USB 类的命令。 因此,此命令对于 BOT 设备是可选的。 不过,我们将检查此 CDB 的实现,并测试是否已实现此命令。

标题:REPORT LUNS LUN0 测试

说明:此测试仅将每个 SAM-3 的当前目标地址的 REPORT LUN 发送到 LUN 0。此项测试仅根据 SPC-3 发出一个 SELECT REPORT 设置为零的请求。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.21 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态以及小于或等于 255 字节的数据。

标题:REPORT LUN 数据有效测试

说明:此测试仅将每个 SAM-3 的当前目标地址的 REPORT LUN 发送到 LUN 0。此项测试仅根据 SPC-3 发出一个 SELECT REPORT 设置为零的请求。

参考:SCSI 主要命令 3 (SPC-3) 修订版 23(或已发布的版本)规范第 6.21 部分

期望:报告的每个 LUN 使用限制为 <= 255 的单级别编号。

命令:Read Capacity 16

标题:READ CAPACITY (16) 分配长度测试

说明:即使分配长度设置为 0 值,设备也必须返回 GOOD (0x0) SCSI 状态

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.11 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:格式化操作和初始化需要此命令。

标题:READ CAPACITY (16) 基本验证测试

说明:设备必须向数据输入缓冲区返回 GOOD (0x0) SCSI 状态,以及用于描述块设备容量和介质格式的 8 字节参数数据。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.11 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:READ CAPACITY (16) 容量测试

说明:发送 READ CAPACITY 命令以检查报告的块地址。 如果块地址大于 READ CAPACITY 10 限制,请确保 READ CAPACITY 10 块地址设置为 0xFFFF_FFFF。

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.11 部分

期望:对于大于 READ CAPACITY 10 可描述值的块地址,READ CAPACITY 10 块地址设置为 0xFFFF_FFFF。

命令:Start Stop Unit

标题:START STOP UNIT 基本测试 1

说明:在 IMMED=0、LOEJ=0、START=0 并减慢驱动器转速的情况下发送 StartStopUnit

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.17 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

理由:在发生电源状态更改以及与总线断开连接的情况时,需要执行此命令来确保数据完整性。

标题:START STOP UNIT 基本测试 2

说明:在 IMMED=0、LOEJ=0、START=1 并提高驱动器转速的情况下发送 StartStopUnit

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.17 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:START STOP UNIT 基本测试 3

说明:在 IMMED=1、LOEJ=0、START=0 并减慢驱动器转速的情况下发送 StartStopUnit

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.17 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

标题:START STOP UNIT 基本测试 4

说明:在 IMMED=1、LOEJ=0、START=1 并提高驱动器转速的情况下发送 StartStopUnit

参考:SCSI 块命令 2 (SBC-2) 修订版 16(或已发布的版本)规范第 5.17 部分

期望:设备必须返回 GOOD (0x0) SCSI 状态

命令语法

命令 说明

Scsicompliance.exe

下面列出了测试选项

/device

运行测试的设备

示例:/Device <物理设备路径>

/operation

要运行的操作。

示例:/Operation Test

/scenario

要测试的功能。

示例:/Scenario Common

/verbosity

日志记录详细级别。 值越大,输出越详细。

示例:/Verbosity 4

注意

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

 

文件列表

文件 位置

Scsicompliance.exe

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

 

参数

参数名称 参数说明
DiskDeviceObjLink 要测试的磁盘的设备路径,示例:\\.\disk0
WDKDeviceID 要测试的设备的实例路径
LoggingVerbosity LoggingVerbosity:日志记录的详细信息。 级别是累积式的。 0 = 断言和结果。 1 = 详细信息(默认值)。 2 = CDB、数据和感知信息。 3 = 调试和详细的模式页信息。 4 = 内存使用率
ScenarioId 方案测试名称。
LLU_NetAccessOnly 用于访问测试文件共享的用户帐户。
LLU_LclAdminUsr 用于运行测试的用户帐户。
OperationId
Destructive (0,1) 0=被动,1=破坏性