共用方式為


Windows 驅動程式套件中的標頭檔案

適用於 Windows 驅動程式套件 (WDK) 的 API 參考檔 包含建置內核模式和使用者模式驅動程式所需的所有頭檔 (.h 檔案)。 頭檔位於 WDK 安裝資料夾中的 Include 資料夾中。 範例:C:\Program Files (x86)\Windows Kits\10\Include。

頭檔包含版本資訊,因此不論您的驅動程式將執行哪個 Windows 版本,您都可以使用相同的頭檔集。

代表 Windows 版本的常數

WDK 中的頭檔包含條件語句,可指定只能在特定 Windows作系統版本中使用的程式設計元素。 被版本控制的元素包括函式、列舉、結構和結構成員。

若要指定每個作系統版本可用的程式設計專案,頭檔包含預處理器條件,這些條件會比較NTDDI_VERSION的值與 Sdkddkver.h 中定義的一組預先定義的常數值。

以下是預先定義的常數值,代表Microsoft Windows作系統的版本。

Constant 操作系統版本

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

In the example you can see that the KeSetTargetProcessorDpcEx function is available only in Windows 7 and later versions of Windows.

此條件式宣告會出現在 Winspool.h 中,這是使用者模式驅動程式可能包含的頭檔。

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

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

In the example can see that the GetPrintExecutionData function is available only in Windows 7 and later versions of Windows.

核心模式驅動程式架構的頭檔

WDK 支援數個版本的 Windows,也支援數個版本的核心模式驅動程式架構 (KMDF) 和使用者模式驅動程式架構 (UMDF)。 WDK 頭檔中的版本控制資訊與 Windows 版本有關,但與 KMDF 或 UMDF 版本無關。 不同版本的 KMDF 和 UMDF 頭檔會放在不同的目錄中。