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 |