Soubory hlaviček v sadě Windows Driver Kit
Referenční dokumentace k rozhraní API pro sadu Windows Driver Kit (WDK) obsahuje všechny soubory hlaviček (soubory .h), které potřebujete k sestavení ovladačů v režimu jádra a uživatelského režimu. Soubory hlaviček jsou ve složce Include v instalační složce WDK. Příklad: C:\Program Files (x86)\Windows Kits\10\Include.
Soubory hlaviček obsahují informace o verzi, abyste mohli použít stejnou sadu souborů hlaviček bez ohledu na to, na jakou verzi windows bude ovladač běžet.
Konstanty, které představují verze Windows
Soubory hlaviček v WDK obsahují podmíněné příkazy, které určují programovací prvky, které jsou k dispozici pouze v určitých verzích operačního systému Windows. Součástí verzí jsou funkce, výčty, struktury a členy struktury.
Chcete-li určit programovací prvky, které jsou k dispozici v každé verzi operačního systému, obsahují soubory hlaviček podmínky preprocesoru, které porovnávají hodnotu NTDDI_VERSION se sadou předdefinovaných konstantních hodnot definovaných v sadě Sdkddkver.h.
Tady jsou předdefinované konstantní hodnoty, které představují verze operačního systému Microsoft Windows.
Konstanta | Verze operačního systému |
---|---|
NTDDI_WIN10 |
Windows 10 |
NTDDI_WINBLUE |
Windows 8.1 |
NTDDI_WIN8 |
Windows 8 |
NTDDI_WIN7 |
Windows 7 |
NTDDI_WS08SP4 |
Windows Server 2008 s aktualizací SP4 |
NTDDI_WS08SP3 |
Windows Server 2008 s aktualizací SP3 |
NTDDI_WS08SP2 |
Windows Server 2008 s aktualizací SP2 |
NTDDI_WS08 |
Windows Server 2008 |
V hlavičkových souborech WDK můžete vidět mnoho příkladů prvků DDI specifických pro konkrétní verzi. Tato podmíněná deklarace se zobrazí v wdm.h, což je soubor hlaviček, který může být součástí ovladače režimu jádra.
#if (NTDDI_VERSION >= NTDDI_WIN7)
_Must_inspect_result_
NTKERNELAPI
NTSTATUS
KeSetTargetProcessorDpcEx (
_Inout_ PKDPC Dpc,
_In_ PPROCESSOR_NUMBER ProcNumber
);
#endif
V příkladu vidíte, že funkce KeSetTargetProcessorDpcEx je k dispozici pouze ve Windows 7 a novějších verzích Windows.
Tato podmíněná deklarace se zobrazí ve službě Winspool.h, což je soubor hlaviček, který může být součástí ovladače uživatelského režimu.
#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
_Out_ PRINT_EXECUTION_DATA *pData
);
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
V příkladu vidíte, že funkce GetPrintExecutionData je dostupná pouze ve Windows 7 a novějších verzích Windows.
Soubory hlaviček pro architekturu ovladačů režimu jádra
WDK podporuje několik verzí Systému Windows a podporuje také několik verzí rozhraní KMDF (Kernel Mode Driver Framework) a rozhraní UMDF (User Mode Driver Framework). Informace o správě verzí v souborech hlaviček WDK se týkají verzí Systému Windows, ale ne verzí KMDF nebo UMDF. Soubory hlaviček pro různé verze KMDF a UMDF jsou umístěny v samostatných adresářích.