次の方法で共有


Windows Driver Kit (WDK) のヘッダー ファイル

Windows Driver Kit (WDK) には、カーネル モード ドライバーとユーザー モード ドライバーをビルドする際に必要となるすべてのヘッダー ファイル (.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 SP4

NTDDI_WS08SP3

Windows Server 2008 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 の異なるバージョンのヘッダー ファイルは、別のディレクトリに格納されています。