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) |