Syscache 테스트
이 테스트는 파일에 쓰고 기록된 데이터가 올바르게 다시 읽혀지는지 확인하는 자동화된 테스트입니다. 이를 통해 펌웨어, 드라이버, 파일 시스템, 메모리 등의 경로에 있는 모든 항목으로 인한 손상을 검색할 수 있으며, 표준 Win32 파일 시스템 및 메모리 관리 API를 사용하여 파일에서 데이터를 읽고 씁니다. 테스트 이진 파일은 readwrit.exe입니다.
Syscache는 특정 플래그/특성이 있는 파일을 열고 파일에 씁니다. 선택한 각 플래그는 파일에서 여러 번 실행할 수 있습니다.
실행은 다음 시퀀스의 집합으로 정의됩니다.
파일을 만들거나 엽니다.
파일 크기를 0으로 자릅니다.
파일에 씁니다.
파일을 닫습니다.
파일을 다시 엽니다.
파일을 읽습니다.
파일 콘텐츠를 확인합니다.
파일을 닫습니다.
파일에는 0 및 0이 아닌 영역 집합이 있습니다. 0 영역은 데이터가 기록되지 않은 파일의 영역입니다. 0이 아닌 영역은 데이터가 기록된 파일의 영역입니다. 패턴은 RRPPPPPP 형식의 DWORD입니다. 상위 2바이트는 실행 번호이고 다음 3바이트는 파일에서 이 DWORD 오프셋의 1의 보수입니다.
다음 특성은 파일 쓰기에 사용됩니다.
쓰기 특성 | 설명 |
---|---|
FILE_ATTRIBUTE_NORMAL |
CreateFile() 설명서 참조 |
FILE_FLAG_SEQUENTIAL_SCAN |
CreateFile() 설명서 참조 |
FILE_FLAG_NO_BUFFERING |
CreateFile() 설명서 참조 |
FILE_FLAG_NO_BUFFERING |
CreateFile() 설명서 참조 |
FILE_FLAG_WRITE_THROUGH |
CreateFile() 설명서 참조 |
FILE_ATTRIBUTE_TEMPORARY |
CreateFile() 설명서 참조 |
NO_BUFFERING | WRITE_THROUGH |
CreateFile() 설명서 참조 |
FILE_ATTRIBUTE_SPARSE_FILE |
파일이 스파스로 설정됩니다. |
NORMAL APPEND_WRITE |
FILE_ATTRIBUTE_NORMAL과 동일합니다. 쓰기당 파일을 닫았다가 다시 열고 다음 영역을 추가합니다. |
FILE_FLAG_SECTOR_CHUNKS |
FILE_FLAG_NO_BUFFERING과 동일하게 데이터는 한 번에 한 섹터씩 기록됩니다. |
FILE_MAP |
FILE_ATTRIBUTE_NORMAL과 동일하게 데이터는 메모리 매핑을 통해 기록됩니다. |
FILE_FLAG_OVEREXTEND |
FILE_ATTRIBUTE_NORMAL과 동일하게 데이터는 메모리 매핑을 통해 기록됩니다. |
다음 특성은 파일에서 읽는 데 사용됩니다.
읽기 특성 | 설명 |
---|---|
FILE_MAP |
FILE_ATTRIBUTE_NORMAL, 메모리 매핑을 통해 데이터를 읽습니다. |
NO_BUFFERING |
FILE_FLAG_NO_BUFFERING |
NORMAL |
FILE_ATTRIBUTE_NORMAL |
RANDOM_ACCESS |
FILE_FLAG_RANDOM_ACCESS |
SEQUENTIAL_SCAN |
FILE_FLAG_SEQUENTIAL_SCAN |
TEMPORARY |
FILE_FLAG_TEMPORARY |
WRITE_THROUGH |
FILE_FLAG_WRITE_THROUGH |
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 180 |
범주 | 개발 |
시간 제한(분) | 10800 |
다시 부팅 필요 | false |
특별한 구성 필요 | false |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
요구 사항에 대한 자세한 내용은 파일 시스템 테스트 필수 구성 요소를 참조하세요.
또한 이 테스트에는 4개의 단순 2,048MB 파티션과 2개의 단순 1,024MB 파티션을 위한 추가 하드 드라이브 공간이 필요합니다.
테스트를 실행하기 전에 테스트 컴퓨터에 다음 파티션을 추가해야 합니다.
레이블 | 파일 시스템 | 크기 | 예상 드라이브 문자 |
---|---|---|---|
NTFS |
NTFS |
2,048MB |
g: |
CNTFS |
NTFS(압축) |
2,048MB |
i: |
FAT |
FAT16 |
1,024MB |
k: |
FAT32 |
FAT32 |
1,024MB |
l: |
ExFAT |
ExFAT |
2,048MB |
m: |
UDF |
UDF |
2,048MB |
n: |
REFS |
REFS |
10240mb |
o: |
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
문제 해결 정보는 파일 시스템 테스트 문제 해결을 참조하세요.
테스트가 실패하면 로그에 실패를 분석하는 데 필요한 모든 정보가 포함됩니다. 오류를 재현하려면 다음 정보를 찾습니다.
"쓰기 특성". 데이터가 파일에 기록된 방식을 찾으려면 쓰기 특성 표를 찾습니다.
"읽기 특성". 읽기 특성 표를 찾아 파일에서 데이터를 다시 읽는 방법을 찾습니다.
오류가 발생한 오프셋
오류가 발생한 파일의 영역 테스트는 일반적으로 단일 쓰기를 사용하여 전체 지역을 씁니다(FILE_FLAG_SECTOR_CHUNKS 옵션 제외).
이 테스트를 실행하려면 컴퓨터에 NTFS, CNTFS, FAT16, FAT32, ExFAT 및 UDF 볼륨이 설정되어 있는지 확인합니다. 또한 이 볼륨의 드라이브 문자가 <filesystem>_DRIVE_LETTER 매개 변수에 입력되었는지 확인합니다.
이 테스트는 Pass 또는 Fail을 반환합니다. 테스트 세부 정보를 검토하려면 Windows HLK(Windows Hardware Lab Kit) Studio에서 테스트 로그를 검토합니다.
추가 정보
명령 구문
명령 옵션 | 설명 |
---|---|
WrapSyscache.cmd [NTFS_DRIVE_LETTER] [CNTFS_DRIVE_LETTER] [FAT_DRIVE_LETTER] [FAT32_DRIVE_LETTER] [EXFAT_DRIVE_LETTER] [UDF_DRIVE_LETTER] [WTTRunWorkingDir] |
파일에 쓰고, 기록된 데이터가 올바르게 다시 읽혀지는지 확인합니다. |
참고
이 테스트 이진에 대한 명령줄 도움말을 보려면 /h를 입력합니다.
파일 목록
파일 | 위치 |
---|---|
Ntlog.dll |
<[osbinroot]>\nttest\CommonTest\NtLog\ |
Ntlogger.ini |
<[osbinroot]>\nttest\CommonTest\NtLog\ |
Readwrit.exe |
<[testbinroot]>\nttest\BASETEST\core_file_services\cachemgr\ |
RunSyscache.cmd |
<[testbinroot]>\nttest\BASETEST\Core_File_Services\FilterManager\TestSuite\Scripts\FileSystems\ |
Stresslog.dll |
<[testbinroot]>\nttest\basetest\core_file_services\shared_libs\ |
WrapSyscache.cmd |
<[testbinroot]>\nttest\BASETEST\Core_File_Services\FilterManager\TestSuite\Scripts\FileSystems\ |
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
NTFS_DRIVE_LETTER | Syscache 테스트가 실행될 NTFS 볼륨의 드라이브 문자입니다. |
CNTFS_DRIVE_LETTER | Syscache 테스트가 실행될 압축된 NTFS 볼륨의 드라이브 문자입니다. |
FAT_DRIVE_LETTER | Syscache 테스트가 실행될 FAT 볼륨의 드라이브 문자입니다. |
FAT32_DRIVE_LETTER | Syscache 테스트가 실행될 FAT 볼륨의 드라이브 문자입니다. |
EXFAT_DRIVE_LETTER | Syscache 테스트가 실행될 ExFat 볼륨의 드라이브 문자입니다. |
UDF_DRIVE_LETTER | Syscache 테스트가 실행될 UDF 볼륨의 드라이브 문자입니다. |
LLU_LclAdminUser | 실행용 LLU |
LLU_NetAccessOnly | 복사용 LLU |
REFS_DRIVE_LETTER | 테스트를 실행할 ReFS 볼륨의 드라이브 문자입니다. >= Win8 Server가 아닌 경우 NONE을 입력합니다. |