EHDD 测试

此测试验证已加密的硬盘驱动器是否符合 Microsoft 和行业规范。

测试详细信息

   
规范
  • Device.Storage.Hd.Ehdd.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 的下一次更新
预计运行时间(以分钟为单位) 30
类别 兼容性
超时(以分钟为单位) 1800
需要重启 false
需要特殊配置 false
类型 automatic

 

其他文档

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

运行测试

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

EHDD 设备必须连接到相应的控制器。 作业将用正确的分区和格式化准备磁盘,以进行测试。 测试具有破坏性,因此磁盘不能是启动磁盘。 尽可能减少徽标测试之外的驱动器上发生的活动量非常重要。 由于此测试具有性能元素,因此外部活动可能会影响结果。 需要在运行时输入驱动器的 PSID,因为无法以编程方式获取此值。

故障排除

有关 HLK 测试失败的常规故障排除,请参阅 Windows HLK 测试失败疑难解答

  • 检查 WTT 跟踪:

    • 查看执行 EHDD 测试的任务日志。

    • 打开日志文件 EHDDLogoTest.wtl。

    • 检查可能解决问题的消息。

  • 检查并重播 TCG 命令跟踪:

    • 如果出现错误,则会日志记录发送给驱动程序的所有命令。 遇到错误时,自上一次恢复起的跟踪将以 .error 扩展名保存在运行测试的文件夹中。

    • 在文本编辑器中打开数值最高的 FullCommandoutput#.txt.error。

    • 查找失败的原因。

    • 可以回放 SerializedCommands#.error 文件来重现观察到的错误。

    • 通过重播错误文件确定这是否是一致的重现。 示例:EhddLogoTest.exe /DeviceID "\\.\physicaldrive1" /PSID "G98D72LDPW2DF9HDN30HG0G30H409HG4" /Playback SerializedCommands1.error

  • 无法开始日志记录 EhstorTCGDrvTrace:

    • 如果测试的前一次运行过早中断,则跟踪日志的保留时间可能会超出二进制文件的生命周期。

    • 将出现以下错误:

      Executing "cmd.exe /c logman.exe start EhstorTcgDrvTrace -ets -p {aa3aa23b-bb6d-425a-b58c-1d7e37f5d02a} -ft 1 -rt -o perflog.etl"Command execution exited with code: -2144337737 Could not start logging for EhstorTcgDrvTrace

    • 打开提升的 cmd 窗口,右键单击 cmd.exe (C:\Windows\System32\cmd.exe) 并选择以管理员身份运行

    • 运行 logman -query -ets

    • 运行 logman -stop -ets EhstorTcgDrvTrace

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

更多信息

作业获取受测设备的设备实例 ID 和设备的 PSID。 作业将设备实例 ID 转换为物理驱动器号,以便在该设备上运行测试。 作业对驱动器进行分区和格式化,使其配置符合测试要求。 EhddLogoTest 将通过一系列测试用例运行,每个测试用例都映射到要求中的项。 测试用例是自包含的,一个测试用例的结果不应影响其他测试用例,因为驱动器会在每个测试用例之间恢复并激活。 下面列出了测试案例:

  • ATA 标识

  • Com 数据包大小

  • 加密模式

  • 固定 ACL 模式

  • 模糊

  • 密钥长度

  • 元数据

  • 可修改公用名

  • Opal 版本

  • 查询接收器

  • 范围跨越

  • 机密保护

  • SID 禁用

  • TCG 堆栈重置

  • TPer 重置

  • 未经身份验证的擦除

其中每个测试用例都可以使用独立模式下的测试在命令行上运行,以进行进一步的测试或调试。 当独立运行测试时,模糊测试用例有一个可选参数,用于表示模糊迭代数。

在测试过程中,发送到驱动器的命令将被日志记录,如果出现错误,则将以纯文本形式 (FullCommandoutput#.txt.error) 和重播文件 (SerializedCommands#.error) 形式保存此日志。 每次作为命令进行恢复时,都会重置日志,因为最后一次恢复应该足以重现失败。 可以使用播放参数启动测试,以重播导致失败的一系列命令。

命令语法

参数 说明

EhddLogoTest

用于测试的二进制文件。

/DeviceID

EHDD 设备驱动器号。

示例:/DeviceID \\\\.\\PhysicalDrive1

/PSID

设备的 PSID。

示例:/PSID VUTSRQPONMLKJIHGFEDCBA9876543210

/Seed

用于生成随机测试数据的种子值。

示例:/Seed 1000

/RunTestCaseType

仅运行指定类别的测试用例:设备、配置文件或方案。

示例:/RunTestCaseTypes device

/RunTestCase

仅运行指定的测试用例:ATAIdentify、Band、ComPacketSize、EncryptionMode、FixedACLMode、Fuzz、KeyLength、Metadata、ModifiableCommonName、OpalVersion、QuerySilo、RangeCrossing、SecretProtect、SIDDisable、TCGStackReset、TPerReset 或 UnauthenticatedErase。

示例:/RunTestCase Band

/FuzzIterations

运行模糊方案的迭代数。 仅在运行模糊方案时有效。

示例:/FuzzIterations 1000

/SkipManualTestCases

跳过需要手动交互的测试用例。

示例:/SkipManualTestCases

/Debugger

提示附加调试程序,以留出时间在进一步执行程序之前附加调试程序。

示例:/Debugger

/Verbosity

日志记录详细程度。 日志记录详细程度级别:Minimal、Default 或 Verbose。

示例:/Verbosity Verbose

/Playback

播放以前录制的命令日志文件。

示例:/Playback RecordedCommand.err

/Log

日志名称

默认值:LogoTest.wtl

示例:/log mytestlog.wtl

/cmdPerfTraceAnalysis

运行命令性能分析:Never、OnPassed 或 Always。

示例:/cmdPerfTraceAnalysis Always

/cmdPerfTraceLogFile

性能输出跟踪日志 commandText。

默认值:perf-tracelog.etl

示例:/cmdPerfTraceLogFile perf-tracelog.etl

 

命令用法

命令 说明

EhddLogoTest.exe /DeviceID "[DiskDeviceObjLink]" /PSID "[PSID]"

运行指定设备实例 ID 和 PSID 的测试。

注意

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

 

文件列表

文件 位置

EhddFuzzer.dll

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

EhddInterop.dll

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

EhddLogoTest.exe

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

EhddModularTestCase.dll

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

EhddTestCases.dll

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

EhddTestHarness.dll

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

EhddTestLib.dll

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

EhddTraceLib.dll

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

Tcglibutil.dll

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

StorageDevices.dll

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

 

参数

参数名称 参数说明
LLU_LclAdminUsr 用于运行测试的用户帐户。
LLU_NetAccessOnly 用于访问测试文件共享的用户帐户。
WDKDeviceID 要测试的设备的实例路径。
DiskDeviceObjLink 通过创建存储参数分配。
PSID 设备的 PSID
Destructive (0,1) 0=被动,1=破坏性