Fonction RtlVerifyVersionInfo (wdm.h)

La routine RtlVerifyVersionInfo compare un ensemble spécifié de conditions requises pour la version du système d’exploitation aux attributs correspondants de la version en cours d’exécution du système d’exploitation.

Syntaxe

NTSYSAPI NTSTATUS RtlVerifyVersionInfo(
  [in] PRTL_OSVERSIONINFOEXW VersionInfo,
  [in] ULONG                 TypeMask,
  [in] ULONGLONG             ConditionMask
);

Paramètres

[in] VersionInfo

Pointeur vers une structure de RTL_OSVERSIONINFOEXW qui spécifie la configuration requise pour la version du système d’exploitation à comparer aux attributs correspondants de la version en cours d’exécution du système d’exploitation.

[in] TypeMask

Spécifie les membres de VersionInfo à comparer avec les attributs correspondants de la version en cours d’exécution du système d’exploitation. TypeMask est défini sur un OR logique d’une ou plusieurs des valeurs suivantes.

Valeur Membre correspondant
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

Spécifie comment comparer chaque membre VersionInfo . Pour définir la valeur de ConditionMask, un appelant doit utiliser la macro VER_SET_CONDITION :

VER_SET_CONDITION (
        IN OUT  ULONGLONG  ConditionMask,
        IN ULONG  TypeBitMask,
        IN UCHAR  ComparisonType
        );

La valeur de ConditionMask est créée de la manière suivante :

  • Initialisez la valeur de ConditionMask sur zéro.

  • Appelez VER_SET_CONDITION une fois pour chaque membre VersionInfo spécifié par TypeMask.

  • Définissez les paramètres TypeBitMask et ComparisonType pour chaque appel à VER_SET_CONDITION comme suit :

TypeBitMask

Indique le membre VersionInfo pour lequel le type de comparaison est défini. TypeBitMask peut être l’une des valeurs suivantes.

Valeur Membre correspondant
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

Spécifie le type de comparaison utilisé par RtlVerifyVersionInfo pour comparer le membre VersionInfo spécifié par TypeBitMask avec l’attribut correspondant du système d’exploitation en cours d’exécution.

Pour toutes les valeurs de TypeBitMask autres que VER_SUITENAME, ComparisonType est défini sur l’une des valeurs suivantes.

Valeur Signification
VER_EQUAL La valeur actuelle doit être égale à la valeur spécifiée.
VER_GREATER La valeur actuelle doit être supérieure à la valeur spécifiée.
VER_GREATER_EQUAL La valeur actuelle doit être supérieure ou égale à la valeur spécifiée.
VER_LESS La valeur actuelle doit être inférieure à la valeur spécifiée.
VER_LESS_EQUAL La valeur actuelle doit être inférieure ou égale à la valeur spécifiée.

Si TypeBitMask a la valeur VER_SUITENAME, ComparisonType a la valeur de l’une des valeurs suivantes.

Valeur Signification
VER_AND Toutes les suites de produits spécifiées dans le membre wSuiteMask doivent être présentes dans le système actuel.
VER_OR Au moins une des suites de produits spécifiées doit être présente dans le système actuel.

Valeur retournée

RtlVerifyVersionInfo retourne l’une des valeurs status suivantes :

Code de retour Description
STATUS_SUCCESS La version spécifiée correspond à la version en cours d’exécution du système d’exploitation.
STATUS_INVALID_PARAMETER Les paramètres d’entrée ne sont pas valides.
STATUS_REVISION_MISMATCH La version spécifiée ne correspond pas à la version en cours d’exécution du système d’exploitation.

Remarques

RtlVerifyVersionInfo permet à un pilote de vérifier facilement la présence d’un ensemble requis d’attributs de système d’exploitation. RtlVerifyVersionInfo est l’équivalent en mode noyau de la fonction VerifyVersionInfo en mode utilisateur dans le Kit de développement logiciel (SDK) Windows. Consultez l’exemple dans le Kit de développement logiciel (SDK) Windows qui montre comment vérifier la version du système.

En règle générale, RtlVerifyVersionInfo retourne STATUS_SUCCESS uniquement si toutes les comparaisons réussissent. Toutefois, la version principale, la version mineure et la version du Service Pack sont testés de manière séquentielle de la manière suivante :

  • Si la version principale dépasse le minimum requis, la version mineure et la version du Service Pack ne sont pas testées. Par exemple, si la version principale actuelle est 6.0, un test pour un système supérieur ou égal à la version 5.1 Service Pack 1 réussit. La version mineure et la version du Service Pack ne sont pas testées.

  • Si la version mineure dépasse le minimum requis, la version du Service Pack n’est pas testée. Par exemple, si la version principale actuelle est 5.2, un test pour une version système supérieure ou égale à la version 5.1 Service Pack 1 réussit. La version du Service Pack n’est pas testée.

  • Si la version principale du Service Pack dépasse le minimum requis, la version mineure du Service Pack n’est pas testée.

Pour vérifier une plage de versions système, un pilote peut appeler RtlVerifyVersionInfo deux fois, une fois pour vérifier une limite inférieure sur la version système et une fois pour vérifier une limite supérieure sur la version système.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (include Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe (mode noyau) ; Ntdll.dll (mode utilisateur)
IRQL PASSIVE_LEVEL

Voir aussi

RTL_OSVERSIONINFOEXW

RTL_OSVERSIONINFOW

RtlGetVersion