정적 드라이버 검증 도구

정적 드라이버 검증 도구("StaticDV" 또는 "SDV"라고도 함)는 Windows 커널 모드 드라이버의 소스 코드를 체계적으로 분석하는 정적 확인 도구입니다. SDV는 드라이버에서 결함을 검색하고 문제를 설계할 수 있는 컴파일 시간 도구입니다. 인터페이스 규칙 집합 및 운영 체제 모델에 따라 SDV는 드라이버가 Windows 운영 체제 커널과 올바르게 상호 작용하는지 여부를 결정합니다.

Important

Windows 하드웨어 호환성 프로그램에는 클라이언트 및 서버 운영 체제에서 STL(정적 도구 로고) 테스트용 CodeQL이 필요합니다. 우리는 기본 이전 제품에 대한 SDV 및 CA에 대한 지원을 계속 얻을 것입니다. 파트너는 정적 도구 로고 테스트에 대한 CodeQL 요구 사항을 검토하는 것이 좋습니다. CodeQL 사용에 대한 자세한 내용은 CodeQL 및 정적 도구 로고 테스트를 참조하세요.

정적 드라이버 검증 도구 설치

정적 드라이버 검증 도구는 전체 WDK 환경과 독립 실행형 Enterprise WDK 모두에서 WDK(Windows 드라이버 키트)의 일부로 사용할 수 있습니다. 또한 SDV를 실행하려면 Visual Studio용 Visual C++ 재배포 가능 패키지 패키지가 필요합니다. 다음을 참조하십시오.

Windows 10용 WDK 버전 1809 이하에서 사용할 수 있는 SDV 버전의 경우 Visual Studio 2012용 Visual C++ 재배포 가능 패키지 패키지는 2017 패키지 대신 설치해야 합니다.

Visual Studio 통합

정적 드라이버 검증 도구는 Visual Studio에 통합됩니다. Visual Studio 드라이버 프로젝트에서 정적 분석을 실행할 수 있습니다. Visual Studio의 드라이버 메뉴에서 정적 드라이버 검증 도구를 시작, 구성 및 제어할 수 있습니다.

정적 드라이버 검증 도구 설명서

Windows 드라이버 코드에서 버그 찾기

Microsoft는 SDV를 사용하여 Microsoft Windows 운영 체제에 포함된 커널 모드 드라이버를 테스트하고 WDK에서 샘플 드라이버를 테스트합니다. SDV는 특정 드라이버 모델에 대한 DDI 준수 규칙을 사용하여 올바른 드라이버 동작을 확인할 수 있습니다. 예를 들어 SDV는 드라이버가 다음과 같은지 확인할 수 있습니다.

  • 올바른 IRQL에서 함수 호출
  • 올바른 순서로 잠금을 획득하고 해제합니다.
  • IRP(I/O 요청 패킷)를 처리하는 함수를 올바르게 사용합니다.

SDV는 드라이버 코드를 통해 가능한 모든 경로를 검사합니다. 철저한 테스트에서도 발생할 가능성이 없는 모호한 경로에서 심각한 오류를 찾을 수 있도록 설계되었습니다.

추가 리소스

SDV에서 확인할 수 있는 드라이버에 대한 자세한 내용은 지원되는 드라이버를 참조 하세요.

정적 드라이버 검증 도구 사용에 대한 자세한 내용과 팁은 다음을 참조하세요.