共用方式為


IoIsWdmVersionAvailable 函式 (wdm.h)

IoIsWdmVersionAvailable 例程會檢查作系統是否支援指定的 WDM 版本。

語法

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

參數

[in] MajorVersion

指定要求的主要 WDM 版本號碼。

[in] MinorVersion

指定要求的次要 WDM 版本號碼。

傳回值

IoIsWdmVersionAvailable 如果作系統提供的 WDM 版本大於或等於所要求的 WDM 版本,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

要求

要求 價值
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)IrqlIoPassive5(wdm)PowerIrpDDis(wdm)

另請參閱

RtlIsNtDdiVersionAvailable