DF - 퍼지 길이가 0인 버퍼 IOCTL 테스트(안정성)
제로 길이 버퍼 테스트 중에 퍼지 테스트는 입력 및/또는 출력 버퍼 길이가 0인 DeviceIoControl 함수에 대한 일련의 호출을 실행합니다. 이 테스트는 다양한 함수 코드, 디바이스 유형, 데이터 전송 방법 및 액세스 요구 사항을 사용하여 다양한 I/O 제어 코드를 생성합니다. I/O 제어 코드의 내용에 대한 자세한 내용은 I/O 제어 코드 정의를 참조하세요.
드라이버의 잘못된 버퍼 포인터 처리를 테스트하기 위해 이러한 사용자 모드 호출의 버퍼 포인터는 커널 가상 주소 공간에 많은 주소(예: 0xFFFFFC00)를 지정합니다.
퍼지 테스트는 기본 및 열린 추가 테스트 중에 열린 모든 디바이스에서 제로 길이 버퍼 테스트를 수행합니다. MinFunctionCode 및 MaxFunctionCode 명령 매개 변수를 사용하여 호출에 사용되는 IOCTL 함수 코드의 범위를 지정하고 MinDeviceType 및 MaxDeviceType을 사용하여 호출에 사용되는 디바이스 유형의 범위를 지정하는 방식으로 이 테스트를 사용자 지정할 수 있습니다.
- 테스트 이진: Devfund_FuzzTest.dll
- 테스트 메서드: DoZeroLengthBufferIOCTLTest
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 15 |
범주 | 시나리오 |
시간 제한(분) | 180 |
다시 부팅 필요 | false |
특별한 구성 필요 | true |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
테스트를 실행하기 전에 테스트 요구 사항: Device.Fundamentals 안정성 테스트 필수 구성 요소에 설명된 대로 테스트 설정을 완료합니다.
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
HLK 및 WDK의 Device Fundamentals 테스트와 관련된 문제 해결 정보는 Device.DevFund 추가 설명서를 참조하세요.
추가 정보
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
DQ | 대상 디바이스를 식별하는 데 사용되는 WDTF SDEL 쿼리 - https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | DUT 또는 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. 테스트에서 WiFi 어댑터를 테스트하는 데 사용할 수 있는 WPA2 AES WiFi 네트워크의 SSID를 제공합니다. 기본값은 ‘kitstestssid’입니다. |
Wpa2PskPassword | DUT 또는 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. Wpa2PskAesSsid 매개 변수를 사용하여 지정된 WPA2 AES WiFi 네트워크의 암호를 제공합니다. 기본값은 'password'입니다. |
ChangeBufferProtectionFlags | True 또는 False 테스트된 디바이스에 전달되는 버퍼의 메모리 보호 플래그를 변경합니다. 메모리 보호 플래그는 액세스 권한 없음, 읽기 전용, 페이지 보호를 사용하는 읽기 전용 사이에서 전환됩니다. |
Impersonate | True 또는 False 관리자가 아닌 사용자로 테스트를 실행합니다. |
FillZeroPageWithNull | True 또는 False 제로 페이지를 매핑한 후 NULL 값으로 채웁니다. 이 테스트는 포인터를 역참조하기 전에 포인터 참조를 확인하지 않는 드라이버를 식별합니다. |
DoPoolCheck | True 또는 False 풀 태그 및 할당 준비 목록을 사용하여 드라이버의 페이징 및 비페이징 시스템 메모리 풀 사용을 모니터링합니다. 이 옵션은 처리된 예외의 개수 변화도 모니터링하는데, 이 개수는 예외 처리의 오류를 나타낼 수 있습니다. |
DoSync | True 또는 False 또한 SYNC 모드(FILE_SYNCHRONOUS_IO_ALERT)에서 디바이스 핸들을 엽니다. 임의의 읽기 및 쓰기 작업은 건너뜁니다. |
TestCycles | 테스트 주기 수입니다. |
DriverVerifierAdditionalDrivers | 드라이버 검증 도구를 사용하도록 설정해야 하는 추가 드라이버입니다. |
DriverVerifierExcludedFlags | 테스트 실행을 위해 수동으로 제외할 수 있는 드라이버 검증 도구 플래그의 자리 표시자 |
WDKDeviceID | 테스트 중인 디바이스의 디바이스 ID |
QueryHardwareID | 테스트 중인 디바이스의 하드웨어 ID입니다. |
WDTFREMOTESYSTEM | DUT 또는 자식 디바이스 중 하나가 IPv6 게이트웨이 주소가 없는 유선 NIC인 경우에만 필요합니다. 필요하다고 판단되면 테스트 NIC가 네트워크 I/O를 테스트하기 위해 ping할 수 있는 IPv6 주소를 제공합니다. 예: fe80::78b6:810:9c12:46cd |
DriverVerifierCustomizeConfiguration | 이 테스트에서 드라이버 검증 도구 설정을 자동으로 업데이트하도록 지정합니다. |
MinDeviceType | IOCTL에서 DeviceType 필드의 최솟값을 지정합니다. 가능한 최소값은 0입니다. 자동 유형 검색에 -1을 사용합니다(기본 설정됨). |
MaxDeviceType | IOCTL에서 DeviceType 필드의 최댓값을 지정합니다. 가능한 최대값은 65535입니다. 자동 유형 검색에 -1을 사용합니다(기본 설정됨). |
MinFunctionCode | IOCTL에서 FunctionCode 필드의 최솟값을 지정합니다. 가능한 최소값은 0입니다. |
MaxFunctionCode | IOCTL에서 FunctionCode 필드의 최댓값을 지정합니다. 가능한 최댓값은 4095입니다. |