정적 드라이버 검증 도구 명령(MSBuild)

Visual Studio 명령 프롬프트 창에서 SDV(정적 드라이버 검증 도구)를 실행할 수 있습니다. 드라이버의 프로젝트 파일 또는 라이브러리의 프로젝트 파일이 저장된 디렉터리로 이동합니다. 매개 변수는 명령줄에 어떤 순서로든 나타날 수 있습니다.

참고  이전에 WDK(Windows 드라이버 키트)에서 독립형 도구로 사용할 수 있던 SDV는 이제 Visual Studio에 통합되어 MSBuild 대상으로 실행하거나 Visual Studio의 드라이버 메뉴에서 실행할 수 있습니다.


msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform     


릴리스 구성(예: /p:Configuration="Windows 7 Release")을 선택해야 합니다. 지원되는 릴리스 구성 목록은 드라이버 빌드를 참조하세요. Platform은 Win32(x86의 경우) 또는 x64일 수 있습니다(예: /p:Platform=Win32).

참고  컴퓨터의 전원 관리 계획을 검사하여 분석 중에 컴퓨터가 절전 상태로 전환되지 않도록 해야 합니다.

매개 변수

/scan

드라이버의 소스 코드에서 함수 역할 유형 선언을 검사합니다. 드라이버 제공 콜백 함수를 선언하고 루틴을 디스패치하는 방법에 대한 자세한 내용은 함수 역할 유형 선언 사용을 참조하세요. 이 검사 중에 SDV는 드라이버 검증을 위해 필요한 드라이버 진입점을 감지하려고 시도합니다. 검사 결과는 드라이버의 프로젝트 디렉터리에 만들어지는 Sdv-map.h 파일에 기록됩니다.

자세한 내용은 소스 코드 준비를 참조하세요.

/check:Rule | [Rule,...]

지정된 규칙으로 검증을 시작합니다. 2개 이상의 규칙을 지정하려면 규칙 목록을 대괄호로 묶고 각 규칙을 쉼표로 구분합니다. /check: 명령을 실행하고 드라이버의 Visual Studio 프로젝트 파일(*.vcxproj)을 지정합니다.

Rule은 한 가지 규칙이 이름이거나 하나 이상의 문자를 나타내는 와일드카드 문자(*)가 포함된 규칙 이름 패턴입니다. 와일드카드 문자(*)만 사용하는 경우 모든 규칙을 나타냅니다.

/check:RuleList.sdv

지정된 규칙 목록 파일의 규칙으로 검증을 시작합니다. 이 매개 변수에는 파일을 하나만 나열할 수 있습니다. 규칙 목록 파일의 각 줄은 규칙 하나의 이름이거나 모든 SDV 규칙을 나타내는 와일드카드 문자(*)일 수 있습니다. 규칙 이름에 와일드카드 문자(*)를 사용하여 하나 이상의 문자를 나타낼 수 있습니다. /check:RuleList.sdv 명령을 실행하고 드라이버의 Visual Studio 프로젝트 파일(*.vcxproj)을 지정합니다.

RuleList.sdv규칙 목록 파일의 정규화된 경로 및 파일 이름입니다. 이 파일의 파일 이름 확장명은 .sdv여야 합니다. 파일이 로컬 디렉터리에 있지 않은 경우 경로가 필요합니다. 경로 또는 파일 이름에 공백이 포함된 경우 RuleList.sdv를 따옴표로 묶어야 합니다.

규칙을 지정하지 않고 /check: 옵션을 지정하는 경우 SDV는 드라이버 모델의 기본 규칙 집합을 사용하여 실행됩니다.

/refine

SDV에서 이 옵션을 사용하도록 지시하는 경우 /refine은 지정한 규칙에 대해 항목당 검증을 수행합니다. /refine 옵션은 검증 프로세스를 관련 진입점 그룹으로 분리합니다. 따라서 SDV는 대용량 드라이버에 대해 유용한 결과를 만들 수 있습니다. SDV는 Refine.sdv라는 규칙 파일을 프로젝트와 동일한 디렉터리에 자동으로 생성합니다. 이 파일에는 추가 검증의 혜택을 얻을 수 있는 규칙이 포함되어 있습니다. SDV가 결과 요약에 제공하는 지침에 따라 분석을 계속합니다.

/lib

현재 디렉터리에 있는 라이브러리를 처리합니다. SDV는 MSBuild.exe를 호출하여 외부에서 사용할 라이브러리를 컴파일 및 빌드하고 드라이버 검증에 라이브러리를 포함하는 데 필요한 파일을 생성합니다.

라이브러리를 필요로 하는 드라이버를 검증하기 전에 이 매개 변수를 사용합니다. msbuild /t:sdv /p:Inputs="/lib" 명령을 실행하고 라이브러리의 Visual Studio 프로젝트 파일(*.vcxproj)을 지정합니다.

/lib 매개 변수의 사용 및 효과에 대한 자세한 내용은 정적 드라이버 검증 도구의 라이브러리 처리를 참조하세요.

/view

정적 드라이버 검증 도구를 엽니다. /view 명령을 실행하고 드라이버의 Visual Studio 프로젝트 파일(*.vcxproj)을 지정합니다.

결과는 검증이 완료되면 바로 제공되며 /clean 명령을 사용하여 드라이버의 프로젝트 디렉터리에서 SDV 파일을 삭제할 때까지 계속 사용할 수 있습니다.

/clean

디렉터리에서 SDV 파일을 삭제합니다. 이러한 파일은 정적 드라이버 검증 도구 보고서 표시를 생성하는 데 사용되므로 /clean 명령은 검증 보고서도 삭제합니다.

/clean 명령을 실행하고 드라이버 또는 라이브러리의 Visual Studio 프로젝트 파일(*.vcxproj)을 지정합니다. 이 명령은 지정된 프로젝트의 SDV 파일만 삭제합니다.

각 검증 전에 드라이버 프로젝트에 대해 /clean 명령을 실행합니다.

라이브러리 코드가 변경되는 경우 등과 같이 라이브러리 파일이 만료된 경우 라이브러리에 대해 /clean 명령을 실행합니다.

Sdv-map.h 파일에서 approved 플래그를 true로 설정한 경우(Approved=true)/clean 명령은 Sdv-map.h 파일을 제거하지 않습니다. 그러면 SDV는 이후 검증에 이 파일을 사용할 수 있습니다.

/cleanalllibs

SDV가 컴퓨터 하드 디스크 드라이브의 모든 디렉터리에 만든 라이브러리 처리 파일을 삭제합니다. 드라이버 데이터에는 영향을 주지 않습니다.

빌드 환경 창의 원하는 디렉터리에서 /cleanalllibs 명령을 실행할 수 있습니다.

SDV가 만든 모든 라이브러리 처리 파일을 제거하려는 경우나 여러 라이브러리의 코드가 변경된 경우 이 매개 변수를 사용합니다. 자세한 내용은 정적 드라이버 검증 도구의 라이브러리 처리를 참조하세요.

/?

SDV 명령의 사용법을 표시합니다. 이 매개 변수를 사용하는 명령은 빌드 환경 창에서 실행하지 않아도 됩니다.

설명

매개 변수 없이 msbuild /t:/sdv p:/Inputs=”/?” 를 실행하면 SDV 명령의 사용법이 표시됩니다.

/clean 명령은 SDV가 검증에 대한 정적 드라이버 검증 도구 보고서 표시를 만드는 데 사용하는 파일을 삭제합니다. 이 명령을 실행하면 검증의 정적 드라이버 검증 도구 보고서 표시를 더 이상 사용할 수 없습니다.

예제

mydriver 프로젝트 로컬 디렉터리의 드라이버 파일에 있는 모든 규칙을 사용하여 SDV를 실행하려면

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

로컬 디렉터리의 드라이버 파일에 있는 "Irql"로 시작되는 모든 규칙을 사용하여 SDV를 실행하려면

msbuild /t:sdv /p:Inputs="/check:Irql*" mydriverVcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32


로컬 디렉터리의 드라이버 파일에 있는 CancelSpinLock 규칙을 사용하여 SDV를 실행하려면

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

D:\SDV 디렉터리의 Rules1.sdv 규칙 목록에 지정된 규칙을 사용하여 SDV를 실행하려면

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

이번에는 /clean 옵션을 사용하여 SDV를 다시 실행하려면

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

/refine 옵션을 사용하여 SDV를 실행하려면(SDV에서 그렇게 하도록 지시한 경우)

msbuild /t:sdv /p:Inputs="/refine" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

로컬 디렉터리에 있는 드라이버에 대한 최신 검증의 결과를 볼 수 있도록 정적 드라이버 검증 도구를 표시하려면

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

관련 항목

정적 드라이버 검증 도구를 사용하여 Windows 드라이버의 결함 찾기

 

 

표시:
© 2014 Microsoft