IoIsWdmVersionAvailable 函式 (wdm.h)
IoIsWdmVersionAvailable 例程會檢查操作系統是否支援指定的 WDM 版本。
語法
BOOLEAN IoIsWdmVersionAvailable(
[in] UCHAR MajorVersion,
[in] UCHAR MinorVersion
);
參數
[in] MajorVersion
指定所要求的 WDM 主要版本號碼。
[in] MinorVersion
指定要求的次要 WDM 版本號碼。
傳回值
如果操作系統提供的 WDM 版本大於或等於所要求的 WDM 版本,IoIsWdmVersionAvailable 會傳回 TRUE。 否則會傳回 FALSE。
備註
驅動程式應該使用 RtlIsNtDdiVersionAvailable 例程,而不是 IoIsWdmVersionAvailable 例程。
跨平台驅動程式應該使用此例程來檢查 WDM 版本,再執行因平臺而異或不受所有 WDM 版本支援的任何作業。
在 Wdm.h 頭檔中定義的WDM_MAJORVERSION和WDM_MINORVERSION常數,指定目前 Windows 版本的 WDM 主要和次要版本號碼。 下列列出每個作業系統所提供的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) 在 Windows Me、Windows 2000 和任何成功的操作系統上傳回 TRUE ,但在 Windows 98 和 Windows 98 SE 上則 傳回 FALSE 。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 IrqlIoPassive5 (wdm ) 、 PowerIrpDDis (wdm) |