드라이버 패키지 프로젝트에 대한 드라이버 검증 도구 속성

드라이버 검증 도구 는 드라이버 테스트의 효율성을 높이는 런타임 확인 도구입니다. 테스트를 위해 드라이버를 배포할 때 모든 테스트 컴퓨터에서 실행되도록 드라이버 검증 도구를 사용하도록 설정하고 구성할 수 있습니다.

원격 테스트 컴퓨터에서 드라이버 검증 도구를 사용하도록 설정할 때 항상 테스트 컴퓨터와의 커널 모드 디버깅 연결을 설정해야 합니다. 대상 컴퓨터를 구성하고 디버그 케이블을 설정하는 방법에 대한 자세한 내용은 Windows 디버깅을 사용한 시작 참조하세요.

드라이버 패키지 프로젝트에 대한 드라이버 검증 도구 속성 설정

  1. 드라이버 패키지의 속성 페이지를 엽니다. 솔루션 탐색기 드라이버 패키지 프로젝트를 길게 누르거나 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  2. 드라이버 패키지의 속성 페이지에서 구성 속성을 선택하고 드라이버 설치를 선택한 다음 드라이버 확인을 선택합니다.
  3. 드라이버 확인 사용 옵션을 선택합니다. 이 옵션을 선택하면 테스트 컴퓨터에서 확인할 드라이버 또는 드라이버를 선택하고 사용할 드라이버 검증 도구 옵션을 선택할 수 있습니다.

프로젝트 구성 및 플랫폼

구성 목록 및 플랫폼 목록을 사용하면 다양한 프로젝트 구성 및 플랫폼 조합에 대해 다양한 배포 설정을 적용할 수 있습니다. 예를 들어 디버그 빌드에 대한 배포 옵션 집합을 사용하여 하나의 테스트 컴퓨터에 드라이버를 배포하고 릴리스 빌드에 대한 배포 옵션을 사용하여 다른 테스트 컴퓨터에 드라이버를 배포할 수 있습니다.

드라이버 검증 도구 사용

테스트 컴퓨터에서 컴퓨터의 모든 드라이버, 드라이버 프로젝트 전용 또는 지정된 드라이버 목록에 대해 드라이버 검증 도구를 사용하도록 설정할 수 있습니다. 예를 들어 특정 디바이스에 대해 스택의 드라이버 집합에 대해 드라이버 검증 도구를 사용하도록 설정할 수 있습니다.

드라이버 확인

테스트 컴퓨터에서 확인할 드라이버 또는 드라이버를 지정합니다.

모든 드라이버
드라이버 검증 도구가 원격 테스트 컴퓨터에 설치된 모든 드라이버를 확인하게 지정합니다.

프로젝트 출력
드라이버 검증 도구가 원격 테스트 컴퓨터에 설치된 드라이버 프로젝트를 확인하게 지정합니다. 기본 옵션입니다.

드라이버 목록
드라이버 검증 도구가 원격 테스트 컴퓨터에서 확인하는 드라이버 또는 드라이버 목록을 지정합니다. 예를 들어 특정 디바이스와 연결된 모든 드라이버를 나열할 수 있습니다. 이진 이름으로 드라이버를 지정합니다(예: Driver.sys). 세미콜론을 사용하여 드라이버 목록을 구분합니다. n*.sys와 같은 와일드카드 값은 지원되지 않습니다.

드라이버 검증 도구 표준 플래그

테스트 컴퓨터에서 다음 드라이버 검증 도구 옵션을 구성할 수 있습니다.

  • DDI 규정 준수 검사(Windows 8)

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

  • 교착 상태 검색

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

  • DMA 확인

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

  • IRQL 강제 검사

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

  • I/O 확인

    이 옵션이 활성화되면 드라이버 검증 도구는 특수 풀에서 드라이버의 IRP(인터럽트 요청 패킷)를 할당하고 드라이버의 I/O 처리를 모니터링합니다. 이렇게 하면 I/O 루틴의 불법적이거나 일관되지 않은 사용이 감지됩니다. 드라이버 검증 도구는 또한 여러 I/O 관리자 루틴의 호출을 모니터링하고 PnP(플러그 앤 플레이) IRP, 전원 IRP 및 WMI IRP의 스트레스 테스트를 수행합니다.

  • 기타 검사

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

  • 풀 추적

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

  • 보안 검사

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

  • 특수 풀 검사

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

드라이버 검증 도구 시나리오 특정 설정

  • 낮은 리소스 시뮬레이션

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

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

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

  • IRP 로깅

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

  • 고정 MDL 스택 검사(Windows 8)

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

  • 고정 MDL 드라이버 확인(Windows 8)

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

  • Power Framework 지연 퍼지(Windows 8)

    이 옵션이 활성화되면 드라이버 검증 도구는 드라이버의 동시성 오류를 플러시하는 데 도움이 되도록 스레드 일정을 임의로 지정합니다.

  • 스택 기반 오류 주입(Windows 8)

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

    참고스택 기반 오류 주입낮은 리소스 시뮬레이션과 결합할 수 없습니다.

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

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