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


Функция 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 (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

См. также раздел

RtlIsNtDdiVersionAvailable