정적 도구 로고 테스트

이 테스트는 SDV(정적 드라이버 검증 도구), 코드 분석 도구를 사용하고 Windows 드라이버 키트 미리 보기 버전 20190: CodeQL로 시작하여 드라이버의 안정성과 보안을 향상하도록 설계된 정적 분석을 수행합니다.

테스트 세부 정보

   
사양
  • Device.DevFund.StaticTools.CAandSDV
플랫폼
  • Windows Server 2016(x64)
  • Windows 10, 클라이언트 버전(x64)
  • Windows 10, 클라이언트 버전(x86)
지원되는 릴리스
  • Windows 10
  • Windows 10 버전 1511
  • Windows 10 버전 1607
  • Windows 10, 버전 1703
  • Windows 10, 버전 1709
  • Windows 10, 버전 1803
  • Windows 10, 버전 1809
  • Windows 10, 버전 1903
  • Windows 10에 대한 다음 업데이트
예상 실행 시간(분) 5
범주 개발
시간 제한(분) 0
다시 부팅 필요 false
특별한 구성 필요 false
형식 automatic

Windows 드라이버 키트 미리 보기 버전 20190의 새로운 기능

CodeQL은 소프트웨어 보안을 위한 효과적인 정적 분석 기술입니다. 가치가 높은 보안 쿼리의 광범위한 모음과 강력한 플랫폼의 조합으로 타사 드라이버 코드를 보호하는 데 매우 중요한 도구가 됩니다.

Microsoft는 Windows 에코시스템의 보안 기준을 높이기 위해 향후 Windows 하드웨어 호환성 프로그램에 요구 사항을 추가하는 데 투자하고 있습니다. 이 프로그램에서는 모든 드라이버 제출이 드라이버 소스 코드에서 CodeQL 엔진을 사용하고 "수정 필수"로 간주되는 쿼리를 수정하도록 명시합니다.

이 요구 사항은 정적 도구 로고 테스트에 의해 적용됩니다.

드라이버 소스 코드에서 CodeQL을 다운로드하고 실행하는 방법에 대한 자세한 내용은 CodeQL 및 정적 도구 로고 테스트를 참조하세요. 아래의 "CodeQL 및 DVL 생성" 섹션과 함께 나와 있는 해당 페이지를 따르면 정적 도구 로고 테스트가 테스트의 일부로 드라이버 소스 코드에서 CodeQL을 실행한 결과를 제대로 사용하도록 할 수 있습니다.

CodeQL 및 DVL(드라이버 확인 로그) 생성

Microsoft는 정적 도구 로고 테스트를 사용하여 CodeQL 쿼리를 실행해야 하는 요구 사항을 적용합니다. 정적 도구 로고 테스트는 DVL(드라이버 확인 로그)을 사용하여 드라이버 소스 코드에서 실행되는 다양한 정적 분석의 결과를 수집합니다. 그런 다음 이 DVL은 HLK 테스트를 통해 정적 도구 로고 테스트의 일부로 구문 분석됩니다.

CodeQL 결과는 인증되는 드라이버가 인증을 위해 HLK 테스트를 통과하기 위해 적절한 CodeQL 쿼리를 실행했음을 보여주는 데 DVL을 사용하는 것과 동일한 모델을 따릅니다.

DVL이 생성되는 .vcxproj 파일과 동일한 디렉터리에 .sarif 파일을 배치합니다. 정확한 이름은 중요하지 않으며 파일이 ".sarif"로 끝나기만 하면 됩니다. 이 기능은 Windows 드라이버 키트 미리 보기 버전 20190 이상에서 사용할 수 있습니다.

추가 설명서

이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.

테스트 실행

테스트를 실행하기 전에 다음 단계를 수행하여 DVL(드라이버 확인 로그)을 만들어야 합니다.

  1. 드라이버 소스 코드에서 정적 드라이버 검증 도구 및 코드 분석 도구를 실행합니다.

  2. DVL 파일을 생성하는 유틸리티를 실행합니다.

  3. DVL 파일을 만드는 데 사용된 컴퓨터의 DVL 파일을 정적 도구 로고 테스트를 실행할 때 사용되는 테스트 컴퓨터로 복사합니다. 테스트 컴퓨터의 %systemdrive%\DVL 디렉터리에 파일을 복사합니다. 새 드라이버 확인 로그를 복사하기 전에 테스트 컴퓨터의 디렉터리에 들어 있는 콘텐츠를 삭제해야 합니다.

제출에 포함할 드라이버 확인 로그 파일을 만드는 방법에 대한 자세한 내용은 드라이버 확인 로그 만들기를 참조하세요.

참고

   정적 도구 로고 테스트에는 코드 분석 및 SDV가 실행되었음을 표시하는 DVL 파일만 필요합니다. 테스트를 위해 모든 규칙이 통과해야 하는 것은 아닙니다. 또한 이 작업은 데스크톱이 있는 서버에서 실행해야 합니다. HLK 테스트가 Server Core를 사용하지 못하는 경우(오류 메시지: "RoMetadata.dll을 찾을 수 없음") 해결 방법은 데스크톱이 있는 서버에서 실행한 다음 Server Core의 결과가 포함된 패키지와 패키지를 병합하는 것입니다. 패킷을 병합하는 방법에 대한 정보는 /windows-hardware/test/hlk/user/merge-packages에서 찾을 수 있습니다.  

문제 해결

HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.

추가 정보

명령 구문

명령 옵션 설명

TE.exe /inproc /enablewttlogging /appendwttlogging Devfund_DvlTest.dll /p:WDKClass=[WDKClass] /p:DeviceClass=[DeviceClass] /p:QueryDriverNames=[QueryDriverNames]

테스트를 실행합니다.

참고

   이 테스트 이진에 대한 명령줄 도움말을 보려면 /?를 입력합니다.

 

파일 목록

파일 위치

Devfund_DvlTest.dll

<testbinroot>\OSBinRoot

Microsoft.StaticToolsLogo.ObjectModel.dll

<testbinroot>\OSBinRoot

TE.exe

<testbinroot>\OSBinRoot

 

매개 변수

매개 변수 이름 매개 변수 설명
WDKClass 디바이스 클래스
DeviceClass 디바이스 클래스 매개 변수
QueryDriverNames 예상되는 드라이버 이름.