RtlVerifyVersionInfo-Funktion (wdm.h)
Die RtlVerifyVersionInfo-Routine vergleicht einen angegebenen Satz von Betriebssystemversionsanforderungen mit den entsprechenden Attributen der derzeit ausgeführten Version des Betriebssystems.
Syntax
NTSYSAPI NTSTATUS RtlVerifyVersionInfo(
[in] PRTL_OSVERSIONINFOEXW VersionInfo,
[in] ULONG TypeMask,
[in] ULONGLONG ConditionMask
);
Parameter
[in] VersionInfo
Zeiger auf eine RTL_OSVERSIONINFOEXW Struktur, die die Anforderungen an die Betriebssystemversion angibt, die mit den entsprechenden Attributen der derzeit ausgeführten Version des Betriebssystems verglichen werden sollen.
[in] TypeMask
Gibt an, welche Member von VersionInfo mit den entsprechenden Attributen der derzeit ausgeführten Version des Betriebssystems verglichen werden sollen. TypeMask ist auf ein logisches OR mit einem oder mehreren der folgenden Werte festgelegt.
Wert | Entsprechendes Mitglied |
---|---|
VER_BUILDNUMBER | dwBuildNumber |
VER_MAJORVERSION | dwMajorVersion |
VER_MINORVERSION | dwMinorVersion |
VER_PLATFORMID | dwPlatformId |
VER_SERVICEPACKMAJOR | wServicePackMajor |
VER_SERVICEPACKMINOR | wServicePackMinor |
VER_SUITENAME | wSuiteMask |
VER_PRODUCT_TYPE | wProductType |
[in] ConditionMask
Gibt an, wie die einzelnen VersionInfo-Member verglichen werden. Um den Wert von ConditionMask festzulegen, sollte ein Aufrufer das makro VER_SET_CONDITION verwenden:
VER_SET_CONDITION (
IN OUT ULONGLONG ConditionMask,
IN ULONG TypeBitMask,
IN UCHAR ComparisonType
);
Der Wert von ConditionMask wird wie folgt erstellt:
Initialisieren Sie den Wert von ConditionMask auf null.
Rufen Sie VER_SET_CONDITION einmal für jedes durch TypeMask angegebene VersionInfo-Element auf.
Legen Sie die Parameter TypeBitMask und ComparisonType für jeden Aufruf auf VER_SET_CONDITION wie folgt fest:
TypeBitMask
Gibt das VersionInfo-Element an, für das der Vergleichstyp festgelegt ist. TypeBitMask kann einer der folgenden Werte sein.
Wert | Entsprechendes Mitglied |
---|---|
VER_BUILDNUMBER | dwBuildNumber |
VER_MAJORVERSION | dwMajorVersion |
VER_MINORVERSION | dwMinorVersion |
VER_PLATFORMID | dwPlatformId |
VER_SERVICEPACKMAJOR | wServicePackMajor |
VER_SERVICEPACKMINOR | wServicePackMinor |
VER_SUITENAME | wSuiteMask |
VER_PRODUCT_TYPE | wProductType |
Comparisontype
Gibt den Vergleichstyp an, den RtlVerifyVersionInfo verwendet, um den von TypeBitMask angegebenen VersionInfo-Member mit dem entsprechenden Attribut des derzeit ausgeführten Betriebssystems zu vergleichen.
Für alle Werte von TypeBitMask außer VER_SUITENAME ist ComparisonType auf einen der folgenden Werte festgelegt.
Wert | Bedeutung |
---|---|
VER_EQUAL | Der aktuelle Wert muss dem angegebenen Wert entsprechen. |
VER_GREATER | Der aktuelle Wert muss größer als der angegebene Wert sein. |
VER_GREATER_EQUAL | Der aktuelle Wert muss größer oder gleich dem angegebenen Wert sein. |
VER_LESS | Der aktuelle Wert muss kleiner als der angegebene Wert sein. |
VER_LESS_EQUAL | Der aktuelle Wert muss kleiner oder gleich dem angegebenen Wert sein. |
Wenn TypeBitMask auf VER_SUITENAME festgelegt ist, wird ComparisonType auf einen der folgenden Werte festgelegt.
Wert | Bedeutung |
---|---|
VER_AND | Alle im wSuiteMask-Member angegebenen Produktsammlungen müssen im aktuellen System vorhanden sein. |
VER_OR | Mindestens eine der angegebenen Produktsammlungen muss im aktuellen System vorhanden sein. |
Rückgabewert
RtlVerifyVersionInfo gibt einen der folgenden status Werte zurück:
Rückgabecode | Beschreibung |
---|---|
STATUS_SUCCESS | Die angegebene Version entspricht der aktuell ausgeführten Version des Betriebssystems. |
STATUS_INVALID_PARAMETER | Die Eingabeparameter sind ungültig. |
STATUS_REVISION_MISMATCH | Die angegebene Version stimmt nicht mit der aktuell ausgeführten Version des Betriebssystems überein. |
Hinweise
RtlVerifyVersionInfo ermöglicht es einem Treiber, das Vorhandensein eines erforderlichen Satz von Betriebssystemattributen einfach zu überprüfen. RtlVerifyVersionInfo ist die Kernelmodus-Entsprechung der VerifyVersionInfo-Funktion im Benutzermodus im Windows SDK. Sehen Sie sich das Beispiel im Windows SDK an, das zeigt, wie Die Systemversion überprüft wird.
Normalerweise gibt RtlVerifyVersionInfo nur dann STATUS_SUCCESS zurück, wenn alle Vergleiche erfolgreich sind. Hauptversion, Nebenversion und Service Pack-Version werden jedoch sequenziell auf folgende Weise getestet:
Wenn die Hauptversion die erforderliche Mindestversion überschreitet, werden die Nebenversion und die Service Pack-Version nicht getestet. Wenn die aktuelle Hauptversion beispielsweise 6.0 ist, ist ein Test für ein System erfolgreich, das größer oder gleich Version 5.1 Service Pack 1 ist. Die Nebenversion und die Service Pack-Version werden nicht getestet.
Wenn die Nebenversion den erforderlichen Mindestwert überschreitet, wird die Service Pack-Version nicht getestet. Wenn die aktuelle Hauptversion beispielsweise 5.2 ist, ist ein Test für eine Systemversion, die größer oder gleich Version 5.1 Service Pack 1 ist, erfolgreich. Die Service Pack-Version wird nicht getestet.
Wenn die Hauptversion des Service Packs die erforderliche Mindestversion überschreitet, wird die Nebenversion des Service Packs nicht getestet.
Um eine Reihe von Systemversionen zu überprüfen, kann ein Treiber RtlVerifyVersionInfo zweimal aufrufen, einmal, um eine Untergrenze für die Systemversion zu überprüfen, und einmal, um eine Obergrenze für die Systemversion zu überprüfen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (include Ntddk.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe (Kernelmodus); Ntdll.dll (Benutzermodus) |
IRQL | PASSIVE_LEVEL |