다음을 통해 공유


드라이버 검증 도구 옵션 및 규칙 클래스

이 항목에서는 드라이버 검증 도구 내의 선택적 기능 및 규칙 클래스에 대해 설명합니다. 표준 설정을 사용할 때 포함된 옵션 목록은 표준 설정을 참조하세요.

참고 항목

일부 자동 검사는 선택한 옵션에 관계없이 확인 중인 드라이버에서 항상 수행됩니다. 드라이버가 부적절한 IRQL에서 메모리를 사용하거나, 스핀 잠금 및 메모리 할당을 잘못 호출하거나 해제하거나, 스택을 부적절하게 전환하거나, 타이머를 먼저 제거하지 않고 메모리 풀을 해제하는 경우 드라이버 검증 도구는 이 동작을 감지합니다. 드라이버가 언로드되면 드라이버 검증 도구가 해당 리소스를 제대로 해제했는지 확인합니다.

/ruleclasses를 사용하여 규칙 클래스 사용

Windows 10 버전 17627 이상부터 다음 구문을 사용하여 규칙 클래스를 사용하도록 설정할 수 있습니다.

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

여러 클래스를 사용하도록 설정할 때(아래의 양수 10진수로 표시됨) 각 정수를 공백 문자로 구분합니다.

이러한 규칙 클래스에 대한 설명은 아래에서 확인할 수 있습니다.

표준 규칙 클래스

규칙 클래스 10진수 ID
특수 풀 1
IRQL 검사 강제 적용 2
풀 추적 4
I/O 확인 5
교착 상태 검색 6
DMA 확인 8
보안 검사 9
기타 검사 12
DDI 규정 준수 검사 18
WDF 확인 34

추가 규칙 클래스

이러한 규칙 클래스는 특정 시나리오 테스트를 위한 것입니다. 규칙 클래스가 (*)로 표시되면 자동으로 사용하도록 설정되는 I/O 확인(5)이 필요합니다. (**)로 표시된 플래그는 개별 규칙의 비활성화를 지원합니다.

규칙 클래스 10진수 ID
임의로 낮은 리소스 시뮬레이션 3
보류 중인 I/O 요청 강제 적용(*) 10
IRP 로깅 11
고정 MDL 스택 검사(*) 14
드라이버에 대한 고정 MDL 검사(*) 15
Power Framework 지연 퍼지 16
포트/미니포트 인터페이스 검사 17
체계적인 낮은 리소스 시뮬레이션 19
DDI 규정 준수 확인(추가) 20
커널 동기화 지연 퍼지 24
VM 스위치 확인 25
코드 무결성 검사 26
드라이버 격리 검사(36개 필요) 33
추가 IRQL 검사 35
DIF 사용 36

선택적 기능 및 규칙 클래스 설명

특별 풀

이 옵션을 사용하도록 설정하면 드라이버 검증 도구는 특수 풀에서 드라이버의 메모리 요청 대부분을 할당합니다. 이 특수 풀은 해제된 후 액세스되는 메모리 오버런, 메모리 언더런 및 메모리에 대해 모니터링됩니다.

IRQL 검사 강제 적용

이 옵션을 사용하도록 설정하면 드라이버 검증 도구는 페이징 가능한 코드를 무효화하여 드라이버에 극단적인 메모리 압력을 가합니다. 드라이버가 잘못된 IRQL 또는 스핀 잠금을 보유하는 동안 페이징된 메모리에 액세스하려고 하면 드라이버 검증 도구가 이 동작을 감지합니다.

낮은 리소스 시뮬레이션(Windows 8.1 임의로 낮은 리소스 시뮬레이션이라고 함)

이 옵션을 사용하도록 설정하면 드라이버 검증 도구가 풀 할당 요청 및 기타 리소스 요청에 임의로 실패합니다. 드라이버 검증 도구는 이러한 할당 오류를 시스템에 주입하여 낮은 리소스 상황에 대처하는 드라이버의 능력을 테스트합니다.

풀 추적

이 옵션을 사용하도록 설정하면 드라이버 검증 도구는 드라이버가 언로드될 때 모든 메모리 할당을 해제했는지 확인합니다. 그러면 메모리 누수도 표시됩니다.

I/O 확인

이 옵션이 활성화되면 드라이버 검증 도구는 특수 풀에서 드라이버의 IRP를 할당하고 드라이버의 I/O 처리를 모니터링합니다. 이는 I/O 루틴의 불법적이거나 일관되지 않은 사용을 감지합니다.

교착 상태 검색

이 옵션이 활성화되면 드라이버 검증 도구는 드라이버의 스핀 잠금, 뮤텍스 및 빠른 뮤텍스 사용을 모니터링합니다. 그러면 드라이버의 코드가 특정 시점에 교착 상태를 일으킬 가능성이 있는지 감지합니다.

향상된 I/O 확인

이 옵션이 활성화되면 드라이버 검증 도구는 여러 I/O 관리자 루틴의 호출을 모니터링하고 PnP IRP, 전원 IRP 및 WMI IRP의 스트레스 테스트를 수행합니다. Windows 7 이상 버전의 Windows 운영 체제에서는 향상된 I/O 확인의 모든 기능이 I/O 확인일부로 포함되며 더 이상 드라이버 검증 도구 관리자 또는 명령줄에서 이 옵션을 선택할 필요가 없습니다.

DMA 확인

이 옵션이 활성화되면 드라이버 검증 도구는 드라이버의 DMA 루틴 사용을 모니터링합니다. 이렇게 하면 DMA 버퍼, 어댑터 및 맵 레지스터의 부적절한 사용이 감지됩니다.

보안 검사

(Windows Vista 이상) 이 옵션이 활성화되면 드라이버 검증 도구는 커널 모드 루틴에 의한 사용자 모드 주소에 대한 참조와 같이 보안 취약성을 초래할 수 있는 일반적인 오류를 찾습니다.

기타 검사

(Windows Vista 이상) 이 옵션이 활성화되면 드라이버 검증 도구는 해제된 메모리의 잘못된 처리와 같은 드라이버 충돌의 일반적인 원인을 찾습니다.

보류 중인 I/O 요청 강제 적용

(Windows Vista 이상) 이 옵션이 활성화되면 드라이버 검증 도구는 IoCallDriver에 대한 임의 호출에 대한 STATUS_PENDING 반환하여 STATUS_PENDING 반환 값에 대한 드라이버의 응답을 테스트합니다.

IRP 로깅

(Windows Server 2003 이상) 이 옵션이 활성화되면 드라이버 검증 도구는 드라이버의 IRP 사용을 모니터링하고 IRP 사용 로그를 만듭니다.

Storport 확인

(Windows Vista 이상) 이 옵션이 활성화되면 드라이버 검증 도구는 내보낸 Storport 루틴의 부적절한 사용, 과도한 지연 및 Storport 요청의 부적절한 처리에 대해 Storport 미니포트 드라이버를 모니터링합니다.

Power Framework 지연 퍼지

(Windows 8부터) 이 옵션이 활성화되면 드라이버 검증 도구는 PoFx(전원 관리 프레임워크)를 사용하는 드라이버에서 동시성 오류를 플러시하는 데 도움이 되도록 스레드 일정을 임의로 지정합니다. 이 옵션은 PoFx(전원 관리 프레임워크)를 직접 활용하지 않는 드라이버에는 권장되지 않습니다.

DDI 규정 준수 검사

(Windows 8부터) 이 옵션이 활성화되면 드라이버 검증 도구는 드라이버와 운영 체제의 커널 인터페이스 간의 적절한 상호 작용을 확인하는 DDI(디바이스 드라이버 인터페이스) 규칙 집합을 적용합니다.

고정 MDL 스택 검사

(Windows 8부터) 고정 MDL 스택 검사 옵션은 드라이버가 드라이버 스택 전체에서 고정 MDL 버퍼를 처리하는 방법을 모니터링합니다. 드라이버 검증 도구는 고정 MDL 버퍼의 잘못된 수정을 감지할 수 있습니다. 이 옵션을 사용하려면 하나 이상의 드라이버에서 I/O 확인을 사용하도록 설정해야 합니다.

드라이버에 대한 고정 MDL 검사

(Windows 8부터) 드라이버 에 대한 고정 MDL 검사 옵션은 드라이버가 드라이버별로 고정 MDL 버퍼를 처리하는 방법을 모니터링합니다. 이 옵션은 고정 MDL 버퍼의 잘못된 수정을 검색합니다. 이 옵션을 사용하려면 하나 이상의 드라이버에서 I/O 확인을 사용하도록 설정해야 합니다.

스택 기반 오류 주입

(Windows 8 및 WDK 8에서만 사용 가능) 스택 기반 오류 주입 옵션은 커널 모드 드라이버에서 리소스 오류를 삽입합니다. 이 옵션은 드라이버 검증 도구와 함께 특수 드라이버 KmAutoFail.sys 사용하여 드라이버 오류 처리 경로를 관통합니다.

체계적인 낮은 리소스 시뮬레이션

(Windows 8.1 시작) 체계적인 낮은 리소스 시뮬레이션 옵션은 커널 모드 드라이버에 리소스 오류를 삽입합니다.

NDIS/WIFI 확인

(Windows 8.1 시작) 이 옵션이 활성화되면 드라이버 검증 도구는 NDIS 미니포트 드라이버와 운영 체제 커널 간의 적절한 상호 작용을 확인하는 NDIS 및 WIFI(무선 LAN) 규칙 집합을 적용합니다.

커널 동기화 지연 퍼지

(Windows 8.1 시작) 이 옵션은 드라이버에서 동시성 버그를 감지하는 데 도움이 되도록 스레드 일정을 임의로 지정합니다.

VM 스위치 확인

(Windows 8.1 시작) 이 옵션은 Hyper-V 확장 가능 스위치 내에서 실행되는 필터 드라이버(확장 가능한 스위치 확장)를 모니터링합니다.

포트/미니포트 인터페이스 확인

포트/미니포트 인터페이스 검사를 통해 드라이버 검증 도구는 PortCls.sys 오디오 미니포트 드라이버와 ks.sys AVStream 미니포트 드라이버 간의 DDI 인터페이스를 검사할 수 있습니다. AVStream 드라이버에 대한 규칙 및 오디오 드라이버에 대한 규칙을 참조하세요.

코드 무결성 검사

가상화 기반 보안을 사용하여 코드 무결성을 격리하는 경우 커널 메모리가 실행될 수 있는 유일한 방법은 코드 무결성 확인을 통해서입니다. 즉, 커널 메모리 페이지는 쓰기 가능 및 실행 가능(W+X)일 수 없으며 실행 코드를 직접 수정할 수 없습니다. 코드 무결성 검사는 이러한 코드 무결성 규칙의 호환성을 보장하고 위반을 검색합니다.

WDF 확인

WDF 확인은 커널 모드 드라이버가 KMDF(커널 모드 드라이버 프레임워크) 요구 사항을 제대로 따르는지 확인합니다.

추가 IRQL 검사

추가 IRQL 검사는 PASSIVE_LEVEL 대한 DDI 준수 검사 IRQL 규칙을 보강합니다. 두 가지 규칙으로 구성됩니다.

  • IrqlIoRtlZwPassive 규칙은 드라이버가 IRQL = PASSIVE_LEVEL 실행되는 경우에만 규칙에 나열된 DDI를 호출한다고 지정합니다.
  • IrqlNtifsApcPassive 규칙은 드라이버가 IRQL = PASSIVE_LEVEL 또는 IRQL <= APC_LEVEL 실행되는 경우에만 규칙에 나열된 DDI를 호출한다고 지정합니다.

드라이버 격리 검사

드라이버 격리 검사는 Windows 드라이버의 런타임 드라이버 패키지 격리 요구 사항의 유효성을 검사하는 데 중요합니다. 자세한 내용은 Windows 드라이버 개발 시작을 참조하세요. 검사는 격리된 드라이버 패키지에 허용되지 않는 레지스트리 읽기 및 쓰기를 모니터링합니다.

표준 설정

표준 설정에 포함된 옵션

특별 풀

IRQL 검사 강제 적용

풀 추적

I/O 확인

교착 상태 검색

향상된 I/O 확인(Windows 7 이상에서는 I/O 확인을 선택하면 이 옵션이 자동으로 활성화됨)

DMA 확인

보안 검사

기타 검사 (Windows Vista 이상)

DDI 규정 준수 확인 (Windows 8부터)

I/O 확인이 필요한 드라이버 검증 도구 옵션

먼저 I/O 확인을 사용하도록 설정 해야 하는 네 가지 옵션이 있습니다. I/O 확인을 사용하도록 설정하지 않으면 이러한 옵션을 사용할 수 없습니다.