Headerdateien im Windows Driver Kit

Das Windows Driver Kit (WDK) enthält alle Headerdateien (.h-Dateien), die Sie zum Erstellen von Kernelmodus- und Benutzermodustreibern benötigen. Headerdateien befinden sich im Ordner Include in Ihrem WDK-Installationsordner. Beispiel: C:\Programme (x86)\Windows Kits\10\Include.

Die Headerdateien enthalten Versionsinformationen, sodass Sie unabhängig von der Windows-Version, unter der Ihr Treiber ausgeführt wird, denselben Satz von Headerdateien verwenden können.

Konstanten, die Windows-Versionen darstellen

Headerdateien im WDK enthalten bedingte Anweisungen, die Programmierelemente angeben, die nur in bestimmten Versionen des Windows-Betriebssystems verfügbar sind. Die Versionsverwaltungselemente umfassen Funktionen, Enumerationen, Strukturen und Strukturmember.

Um die Programmierelemente anzugeben, die in jeder Betriebssystemversion verfügbar sind, enthalten die Headerdateien Präprozessor-Bedingungen, die den Wert von NTDDI_VERSION mit einer Reihe vordefinierter konstanter Werte vergleichen, die in Sdkddkver.h definiert sind.

Hier sind die vordefinierten konstanten Werte aufgeführt, die Versionen des Microsoft Windows-Betriebssystems darstellen.

Dauerhaft Betriebssystemversion

NTDDI_WIN10

Windows 10

NTDDI_WINBLUE

Windows 8.1

NTDDI_WIN8

Windows 8

NTDDI_WIN7

Windows 7

NTDDI_WS08SP4

Windows Server 2008 mit SP4

NTDDI_WS08SP3

Windows Server 2008 mit SP3

NTDDI_WS08SP2

Windows Server 2008 mit SP2

NTDDI_WS08

Windows Server 2008

Sie können viele Beispiele für versionsspezifische DDI-Elemente in den WDK-Headerdateien sehen. Diese bedingte Deklaration wird in Wdm.h angezeigt. Hierbei handelt es sich um eine Headerdatei, die von einem Kernelmodustreiber eingeschlossen werden kann.

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

Im Beispiel sehen Sie, dass die KeSetTargetProcessorDpcEx-Funktion nur in Windows 7 und höheren Versionen von Windows verfügbar ist.

Diese bedingte Deklaration wird in Winspool.h angezeigt. Hierbei handelt es sich um eine Headerdatei, die von einem Benutzermodustreiber eingeschlossen werden kann.

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

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

Im Beispiel kann angezeigt werden, dass die GetPrintExecutionData-Funktion nur in Windows 7 und höheren Versionen von Windows verfügbar ist.

Headerdateien für das Kernelmodustreiberframework

Das WDK unterstützt mehrere Versionen von Windows, und es unterstützt auch mehrere Versionen des Kernel Mode Driver Framework (KMDF) und des User Mode Driver Framework (UMDF). Die Versionsverwaltungsinformationen in den WDK-Headerdateien beziehen sich auf Windows-Versionen, aber nicht auf KMDF- oder UMDF-Versionen. Headerdateien für verschiedene Versionen von KMDF und UMDF werden in separaten Verzeichnissen platziert.