Bagikan melalui


File header di Windows Driver Kit

Windows Driver Kit (WDK) berisi semua file header (file.h) yang Anda butuhkan untuk membangun driver mode kernel dan mode pengguna. File header berada di folder Sertakan di folder penginstalan WDK Anda. Contoh: C:\Program Files (x86)\Windows Kits\10\Include.

File header berisi informasi versi sehingga Anda dapat menggunakan sekumpulan file header yang sama terlepas dari versi Windows mana yang akan dijalankan driver Anda.

Konstanta yang mewakili versi Windows

File header dalam WDK berisi pernyataan bersyarah yang menentukan elemen pemrograman yang hanya tersedia dalam versi tertentu dari sistem operasi Windows. Elemen versi termasuk fungsi, enumerasi, struktur, dan anggota struktur.

Untuk menentukan elemen pemrograman yang tersedia di setiap versi sistem operasi, file header berisi kondisi preprosektor yang membandingkan nilai NTDDI_VERSION dengan sekumpulan nilai konstanta yang telah ditentukan sebelumnya yang ditentukan dalam Sdkddkver.h.

Berikut adalah nilai konstanta yang telah ditentukan sebelumnya yang mewakili versi sistem operasi Microsoft Windows.

Terus-menerus Versi sistem operasi

NTDDI_WIN10

Windows 10

NTDDI_WINBLUE

Windows 8.1

NTDDI_WIN8

Windows 8

NTDDI_WIN7

Windows 7

NTDDI_WS08SP4

Windows Server 2008 dengan SP4

NTDDI_WS08SP3

Windows Server 2008 dengan SP3

NTDDI_WS08SP2

Windows Server 2008 dengan SP2

NTDDI_WS08

Windows Server 2008

Anda dapat melihat banyak contoh elemen DDI khusus versi dalam file header WDK. Deklarasi bersyarat ini muncul di Wdm.h, yang merupakan file header yang mungkin disertakan oleh driver mode kernel.

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

Dalam contoh, Anda dapat melihat bahwa fungsi KeSetTargetProcessorDpcEx hanya tersedia di Windows 7 dan versi Windows yang lebih baru.

Deklarasi bersyarat ini muncul di Winspool.h, yang merupakan file header yang mungkin disertakan oleh driver mode pengguna.

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

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

Dalam contoh dapat melihat bahwa fungsi GetPrintExecutionData hanya tersedia di Windows 7 dan versi Windows yang lebih baru.

File header untuk Kerangka Kerja Driver Mode Kernel

WDK mendukung beberapa versi Windows, dan juga mendukung beberapa versi Kerangka Kerja Driver Mode Kernel (KMDF) dan Kerangka Kerja Driver Mode Pengguna (UMDF). Informasi penerapan versi dalam file header WDK berkaitan dengan versi Windows, tetapi tidak untuk versi KMDF atau UMDF. File header untuk berbagai versi KMDF dan UMDF ditempatkan di direktori terpisah.