조건부 컴파일 및 빌드 환경

WDK(Windows 드라이버 키트) 8을 사용하는 경우 릴리스(무료) 또는 디버그(선택됨) 구성을 선택하여 드라이버에서 디버깅 코드를 조건부로 컴파일할 수 있습니다. 선택하는 구성은 DBG 전처리기 상수입니다.

DBG의 값은 드라이버를 빌드하도록 선택한 빌드 구성에 따라 달라집니다.

  • 디버그(확인된) 구성을 사용하여 드라이버를 만드는 경우 DBG 는 1과 같습니다.

  • 릴리스(무료) 빌드 구성을 사용하여 드라이버를 만드는 경우 DBG 는 0과 같거나 wdm.h와 ntddk.h가 포함되지 않은 경우 정의되지 않습니다.

디버깅 루틴 ASSERT, ASSERTMSG, KdBreakPoint, KdBreakPointWithStatus, KdPrintKdPrintEx 는 실제로 DBG 값에 따라 조건부로 정의된 매크로입니다. 0이면 이러한 매크로는 no-ops입니다. 따라서 이러한 매크로는 드라이버의 디버그(확인된) 빌드에서만 활성화됩니다.

참고 "Kd"라는 문자로 시작하는 모든 디버깅 루틴은 KdRefreshDebuggerNotPresent를 제외하고 드라이버의 무료 빌드에는 영향을 주지 않습니다.

Visual Studio 및 MSBuild 사용하여 드라이버 버전을 릴리스 및 디버그하는 방법에 대한 자세한 내용은 드라이버WDK 빌드 및 빌드 환경 Visual Studio 참조하세요.