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 Version größer oder gleich der angeforderten Versionsnummer von WDM ist. Andernfalls wird FALSE-zurückgegeben.
Bemerkungen
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 in allen Versionen von WDM nicht 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 für jedes Betriebssystem 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.
Spätere Versionen von WDM unterstützen alle Features, die in früheren Versionen von WDM verfügbar sind; d. h. jede Version von WDM ist eine Obermenge der vorherigen WDM-Version.
Der folgende Aufruf gibt TRUE- auf einem der aufgeführten Betriebssysteme zurück, da alle diese Systeme alle Funktionen 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 das Aufrufen 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- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |