EHDD 테스트
이 테스트는 암호화된 하드 드라이브가 Microsoft 및 산업 사양을 준수하는지 확인합니다.
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 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에 대한 로깅을 시작할 수 없습니다.
테스트의 이전 실행이 중간에 중단되면 추적 로그가 이진의 수명이 다한 후에도 지속될 수 있습니다.
다음 오류가 표시됩니다.
"cmd.exe /c logman.exe start EhstorTcgDrvTrace -ets -p {aa3aa23b-bb6d-425a-b58c-1d7e37f5d02a} -ft 1 -rt -o perflog.etl" 명령 실행이 코드 3과 함께 종료됨: -2144337737 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 모드
Fuzz
키 길이
메타데이터
수정 가능한 일반 이름
Opal 버전
쿼리 사일로
범위 횡단
비밀 보호
SID 사용 안 함
TCG 스택 다시 설정
TPer 다시 설정
인증되지 않은 지우기
이러한 각 테스트 사례는 추가 테스트 또는 디버깅을 위해 독립 실행형 모드의 테스트를 사용하여 명령줄에서 실행할 수 있습니다. Fuzz 테스트 사례에는 테스트를 독립 실행형으로 실행할 때 fuzz 반복 횟수에 대한 선택적 인수가 있습니다.
테스트하는 동안 드라이브로 전송되는 명령이 기록되고 오류가 발생하면 이 로그가 일반 텍스트(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 |
fuzz 시나리오를 실행할 반복 횟수입니다. fuzz 시나리오를 실행하는 경우에만 유효합니다. 예: /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. Example: /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 |
파괴적 | (0,1) 0=패시브, 1=파괴적 |