Rubrikfiler i Windows Driver Kit
Referensdokumenten för API för Windows Driver Kit (WDK) innehåller alla huvudfiler (.h-filer) som du behöver för att skapa drivrutiner i kernelläge och användarläge. Rubrikfiler finns i mappen Inkludera i WDK-installationsmappen. Exempel: C:\Program Files (x86)\Windows Kits\10\Include.
Huvudfilerna innehåller versionsinformation så att du kan använda samma uppsättning huvudfiler oavsett vilken version av Windows drivrutinen ska köras på.
Konstanter som representerar Windows-versioner
Rubrikfiler i WDK innehåller villkorsstyrda instruktioner som anger programmeringselement som endast är tillgängliga i vissa versioner av Windows-operativsystemet. De versionerade elementen innehåller funktioner, uppräkningar, strukturer och strukturmedlemmar.
Om du vill ange de programmeringselement som är tillgängliga i varje operativsystemversion innehåller huvudfilerna villkor för förprocessor som jämför värdet för NTDDI_VERSION med en uppsättning fördefinierade konstanta värden som definieras i Sdkddkver.h.
Här är de fördefinierade konstantvärdena som representerar versioner av Microsoft Windows-operativsystemet.
Konstant | Operativsystemversion |
---|---|
NTDDI_WIN10 |
Windows 10 |
NTDDI_WINBLUE |
Windows 8.1 |
NTDDI_WIN8 |
Windows 8 |
NTDDI_WIN7 |
Windows 7 |
NTDDI_WS08SP4 |
Windows Server 2008 med SP4 |
NTDDI_WS08SP3 |
Windows Server 2008 med SP3 |
NTDDI_WS08SP2 |
Windows Server 2008 med SP2 |
NTDDI_WS08 |
Windows Server 2008 |
Du kan se många exempel på versionsspecifika DDI-element i WDK-huvudfilerna. Den här villkorliga deklarationen visas i Wdm.h, som är en rubrikfil som kan inkluderas av en drivrutin i kernelläge.
#if (NTDDI_VERSION >= NTDDI_WIN7)
_Must_inspect_result_
NTKERNELAPI
NTSTATUS
KeSetTargetProcessorDpcEx (
_Inout_ PKDPC Dpc,
_In_ PPROCESSOR_NUMBER ProcNumber
);
#endif
I exemplet kan du se att funktionen KeSetTargetProcessorDpcEx endast är tillgänglig i Windows 7 och senare versioner av Windows.
Den här villkorliga deklarationen visas i Winspool.h, som är en rubrikfil som kan inkluderas av en drivrutin i användarläge.
#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
_Out_ PRINT_EXECUTION_DATA *pData
);
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
I exemplet kan se att funktionen GetPrintExecutionData endast är tillgänglig i Windows 7 och senare versioner av Windows.
Rubrikfiler för Kernel Mode Driver Framework
WDK stöder flera versioner av Windows och stöder även flera versioner av Kernel Mode Driver Framework (KMDF) och User Mode Driver Framework (UMDF). Versionsinformationen i WDK-huvudfilerna avser Windows-versioner, men inte FÖR KMDF- eller UMDF-versioner. Huvudfiler för olika versioner av KMDF och UMDF placeras i separata kataloger.