Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Справочные документы по API для пакета драйверов Windows (WDK) содержат все файлы заголовков (H-файлы), необходимые для создания драйверов в режиме ядра и пользовательском режиме. Файлы заголовков находятся в папке Include в каталоге установки WDK. Пример: C:\Program Files (x86)\Windows Kits\10\Include.
Файлы заголовков содержат сведения о версии, чтобы можно было использовать один и тот же набор файлов заголовков независимо от того, какая версия Windows будет работать в драйвере.
Константы, представляющие версии Windows
Файлы заголовков в WDK содержат условные инструкции, которые указывают элементы программирования, доступные только в определенных версиях операционной системы Windows. Версионированные элементы включают функции, перечисления, структуры и элементы структуры.
Чтобы указать элементы программирования, доступные в каждой версии операционной системы, файлы заголовков содержат условные условия препроцессора, которые сравнивают значение NTDDI_VERSION с набором предопределенных значений констант, определенных в Sdkddkver.h.
Ниже приведены предопределенные значения констант, представляющие версии операционной системы Microsoft Windows.
Постоянный | Версия операционной системы |
---|---|
NTDDI_WIN10 |
Windows 10 |
NTDDI_WINBLUE |
Windows 8.1 |
NTDDI_WIN8 |
Windows 8 |
NTDDI_WIN7 |
Windows 7 |
NTDDI_WS08SP4 |
Windows Server 2008 с пакетом обновления 4 (SP4) |
NTDDI_WS08SP3 |
Windows Server 2008 с пакетом обновления 3 (SP3) |
NTDDI_WS08SP2 |
Windows Server 2008 с пакетом обновления 2 (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
В примере видно, что функция KeSetTargetProcessorDpcEx доступна только в Windows 7 и более поздних версиях Windows.
Это условное объявление отображается в Winspool.h, который является файлом заголовка, который может быть включен драйвером пользовательского режима.
#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
_Out_ PRINT_EXECUTION_DATA *pData
);
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
В примере видно, что функция GetPrintExecutionData доступна только в Windows 7 и более поздних версиях Windows.
Заголовочные файлы для Фреймворка драйверов в режиме ядра
WDK поддерживает несколько версий Windows, а также поддерживает несколько версий платформы драйверов режима ядра (KMDF) и платформы драйверов пользовательского режима (UMDF). Сведения о настройке версий в файлах заголовков WDK относятся к версиям Windows, но не к версиям KMDF или UMDF. Файлы заголовков для разных версий KMDF и UMDF помещаются в отдельные каталоги.