Поделиться через


Функция IoIsWdmVersionAvailable (wdm.h)

Программа IoIsWdmVersionAvailable проверяет, поддерживается ли данная версия WDM операционной системой.

Синтаксис

BOOLEAN IoIsWdmVersionAvailable(
  [in] UCHAR MajorVersion,
  [in] UCHAR MinorVersion
);

Параметры

[in] MajorVersion

Указывает основной номер версии WDM, запрашиваемый.

[in] MinorVersion

Указывает дополнительный номер версии WDM, запрашиваемый.

Возвращаемое значение

IoIsWdmVersionAvailable возвращает TRUE, если версия WDM, которую предоставляет операционная система, превышает или равно запрашиваемому номеру версии WDM. В противном случае возвращается FALSE.

Замечания

Драйверы должны использовать подпрограмму RtlIsNtDdiVersionAvailable вместо подпрограммы IoIsWdmVersionAvailable.

Кроссплатформенные драйверы должны использовать эту подпрограмму для проверки версии WDM перед выполнением любых операций, которые зависят от платформы или не поддерживаются во всех версиях WDM.

Константы WDM_MAJORVERSION и WDM_MINORVERSION, определенные в файле заголовка Wdm.h, указывают номера основных и дополнительных версий WDM для текущей версии Windows. Ниже перечислены версии WDM, предоставляемые каждой операционной системой.

Операционная система Основная версия WDM Дополнительная версия WDM
Windows 7 6 0x00
Windows Server 2008 R2 6 0x00
Windows Server 2008 6 0x00
Windows Vista 6 0x00
Windows Server 2003 1 0x30
Windows XP 1 0x20
Windows 2000 1 0x10
Windows Me 1 0x05
Windows 98 1 0x00

Обратите внимание, что дополнительный номер версии определяется как шестнадцатеричное значение.

Более поздние версии WDM поддерживают все функции, доступные в более ранних версиях WDM; То есть каждая версия WDM является супермножеством предыдущей версии WDM.

Следующий вызов возвращает TRUE для любой из перечисленных операционных систем, так как все эти системы поддерживают все функции WDM 1.0:

bVersion = IoIsWdmVersionAvailable(1,0);

В следующем примере показано, как драйвер может динамически обнаруживать текущую операционную систему:

if (IoIsWdmVersionAvailable(1, 0x10)) {
    //
    //If WDM 1.10 is supported, this is Windows 2000
    //or better.
    //
} else if (IoIsWdmVersionAvailable(1, 5)) {
    //
    //If WDM 1.05 is supported, this is Windows ME
    //or better.
    //
} else {
    //
    //WDM 1.0 is always supported, so this is Windows 98, 
    //Windows 98 SE, or better.
    //
}

Как показано в примере, вызов IoIsWdmVersionAvailable(1, 5) возвращает TRUE в Windows Me, Windows 2000 и любых успешных операционных системах, но FALSE в Windows 98 и Windows 98 SE.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

См. также

RtlIsNtDdiVersionAvailable