Share via


Windows 드라이버 키트의 헤더 파일

WDK(Windows 드라이버 키트)에는 커널 모드 및 사용자 모드 드라이버를 빌드하는 데 필요한 모든 헤더 파일(.h 파일)이 포함되어 있습니다. 헤더 파일은 WDK 설치 폴더의 Include 폴더에 있습니다. 예: C:\Program Files (x86)\Windows Kits\10\Include.

헤더 파일에는 드라이버가 실행되는 Windows 버전에 관계없이 동일한 헤더 파일 집합을 사용할 수 있도록 버전 정보가 포함되어 있습니다.

Windows 버전을 나타내는 상수

WDK의 헤더 파일에는 특정 버전의 Windows 운영 체제에서만 사용할 수 있는 프로그래밍 요소를 지정하는 조건문이 포함되어 있습니다. 버전이 지정된 요소에는 함수, 열거형, 구조체 및 구조체 멤버가 포함됩니다.

각 운영 체제 버전에서 사용할 수 있는 프로그래밍 요소를 지정하기 위해 헤더 파일에는 NTDDI_VERSION 값을 Sdkddkver.h에 정의된 미리 정의된 상수 값 집합과 비교하는 전처리기 조건부가 포함되어 있습니다.

다음은 Microsoft Windows 운영 체제의 버전을 나타내는 미리 정의된 상수 값입니다.

상수 운영 체제 버전

NTDDI_WIN10

Windows 10

NTDDI_WINBLUE

Windows 8.1

NTDDI_WIN8

Windows 8

NTDDI_WIN7

Windows 7

NTDDI_WS08SP4

Windows Server 2008 with SP4

NTDDI_WS08SP3

Windows Server 2008 with SP3

NTDDI_WS08SP2

Windows Server 2008 SP2

NTDDI_WS08

Windows Server 2008

WDK 헤더 파일에서 버전별 DDI 요소의 많은 예제를 볼 수 있습니다. 이 조건부 선언은 커널 모드 드라이버에 포함될 수 있는 헤더 파일인 Wdm.h에 표시됩니다.

#if (NTDDI_VERSION >= NTDDI_WIN7)
_Must_inspect_result_
NTKERNELAPI
NTSTATUS
KeSetTargetProcessorDpcEx (
    _Inout_ PKDPC Dpc,
    _In_ PPROCESSOR_NUMBER ProcNumber
    );
#endif

이 예제에서는 KeSetTargetProcessorDpcEx 함수가 Windows 7 이상 버전의 Windows에서만 사용할 수 있음을 확인할 수 있습니다.

이 조건부 선언은 사용자 모드 드라이버에 포함될 수 있는 헤더 파일인 Winspool.h에 표시됩니다.

#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
    _Out_ PRINT_EXECUTION_DATA *pData
    );

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

이 예제에서는 GetPrintExecutionData 함수가 Windows 7 이상 버전의 Windows에서만 사용할 수 있음을 확인할 수 있습니다.

커널 모드 드라이버 프레임워크의 헤더 파일

WDK는 여러 버전의 Windows를 지원하며 KMDF(커널 모드 드라이버 프레임워크) 및 UMDF(사용자 모드 드라이버 프레임워크)의 여러 버전도 지원합니다. WDK 헤더 파일의 버전 관리 정보는 WINDOWS 버전과 관련이 있지만 KMDF 또는 UMDF 버전과는 관련이 없습니다. 다른 버전의 KMDF 및 UMDF에 대한 헤더 파일은 별도의 디렉터리에 배치됩니다.