Функция 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) |