IoIsWdmVersionAvailable-Funktion (wdm.h)

Die IoIsWdmVersionAvailable-Routine überprüft, ob eine bestimmte WDM-Version vom Betriebssystem unterstützt wird.

Syntax

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

Parameter

[in] MajorVersion

Gibt die Hauptversionsnummer von WDM an, die angefordert wird.

[in] MinorVersion

Gibt die Nebenversionsnummer von WDM an, die angefordert wird.

Rückgabewert

IoIsWdmVersionAvailable gibt TRUE zurück, wenn die vom Betriebssystem bereitgestellte WDM-Version größer oder gleich der Versionsnummer des angeforderten WDM ist. Andernfalls wird FALSE zurückgegeben.

Hinweise

Treiber sollten die RtlIsNtDdiVersionAvailable-Routine anstelle der IoIsWdmVersionAvailable-Routine verwenden.

Plattformübergreifende Treiber sollten diese Routine verwenden, um die WDM-Version zu überprüfen, bevor Vorgänge ausgeführt werden, die je nach Plattform variieren oder nicht in allen Versionen von WDM unterstützt werden.

Die WDM_MAJORVERSION und WDM_MINORVERSION Konstanten, die in der Wdm.h-Headerdatei definiert sind, geben die Haupt- und Nebenversionsnummern von WDM für die aktuelle Version von Windows an. Im Folgenden wird die WDM-Version aufgeführt, die mit den einzelnen Betriebssystemen bereitgestellt wird.

Betriebssystem WDM-Hauptversion WDM-Nebenversion
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

Beachten Sie, dass die Nebenversionsnummer als Hexadezimalwert definiert ist.

Höhere Versionen von WDM unterstützen alle Features, die in früheren Versionen von WDM verfügbar sind; Das heißt, jede Version von WDM ist eine Übermenge der vorherigen WDM-Version.

Der folgende Aufruf gibt TRUE für eines der aufgeführten Betriebssysteme zurück, da alle diese Systeme alle Features von WDM 1.0 unterstützen:

bVersion = IoIsWdmVersionAvailable(1,0);

Das folgende Beispiel zeigt, wie ein Treiber das aktuelle Betriebssystem dynamisch erkennen kann:

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.
    //
}

Wie das Beispiel zeigt, gibt der Aufruf von IoIsWdmVersionAvailable(1, 5) true unter Windows Me, Windows 2000 und allen nachfolgenden Betriebssystemen zurück, aber FALSE unter Windows 98 und Windows 98 SE.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Weitere Informationen

RtlIsNtDdiVersionAvailable