Funzione RtlVerifyVersionInfo (wdm.h)
La routine RtlVerifyVersionInfo confronta un set specificato di requisiti di versione del sistema operativo agli attributi corrispondenti della versione attualmente in esecuzione del sistema operativo.
Sintassi
NTSYSAPI NTSTATUS RtlVerifyVersionInfo(
[in] PRTL_OSVERSIONINFOEXW VersionInfo,
[in] ULONG TypeMask,
[in] ULONGLONG ConditionMask
);
Parametri
[in] VersionInfo
Puntatore a una struttura RTL_OSVERSIONINFOEXW che specifica i requisiti della versione del sistema operativo da confrontare con gli attributi corrispondenti della versione attualmente in esecuzione del sistema operativo.
[in] TypeMask
Specifica i membri di VersionInfo da confrontare con gli attributi corrispondenti della versione attualmente in esecuzione del sistema operativo. TypeMask è impostato su un OR logico di uno o più dei valori seguenti.
Valore | Membro corrispondente |
---|---|
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
Specifica come confrontare ogni membro VersionInfo . Per impostare il valore di ConditionMask, un chiamante deve usare la macro VER_SET_CONDITION :
VER_SET_CONDITION (
IN OUT ULONGLONG ConditionMask,
IN ULONG TypeBitMask,
IN UCHAR ComparisonType
);
Il valore di ConditionMask viene creato nel modo seguente:
Inizializzare il valore di ConditionMask su zero.
Chiamare VER_SET_CONDITION una volta per ogni membro VersionInfo specificato da TypeMask.
Impostare i parametri TypeBitMask e ComparisonType per ogni chiamata a VER_SET_CONDITION come indicato di seguito:
TypeBitMask
Indica il membro VersionInfo per cui è impostato il tipo di confronto. TypeBitMask può essere uno dei valori seguenti.
Valore | Membro corrispondente |
---|---|
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
Specifica il tipo di confronto usato da RtlVerifyVersionInfo per confrontare il membro VersionInfo specificato da TypeBitMask con l'attributo corrispondente del sistema operativo attualmente in esecuzione.
Per tutti i valori di TypeBitMask diversi da VER_SUITENAME, ComparisonType è impostato su uno dei valori seguenti.
Valore | Significato |
---|---|
VER_EQUAL | Il valore corrente deve essere uguale al valore specificato. |
VER_GREATER | Il valore corrente deve essere maggiore del valore specificato. |
VER_GREATER_EQUAL | Il valore corrente deve essere maggiore o uguale al valore specificato. |
VER_LESS | Il valore corrente deve essere minore del valore specificato. |
VER_LESS_EQUAL | Il valore corrente deve essere minore o uguale al valore specificato. |
Se TypeBitMask è impostato su VER_SUITENAME, ComparisonType è impostato su uno dei valori seguenti.
Valore | Significato |
---|---|
VER_AND | Tutti i pacchetti di prodotti specificati nel membro wSuiteMask devono essere presenti nel sistema corrente. |
VER_OR | Almeno uno dei pacchetti di prodotti specificati deve essere presente nel sistema corrente. |
Valore restituito
RtlVerifyVersionInfo restituisce uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | La versione specificata corrisponde alla versione attualmente in esecuzione del sistema operativo. |
STATUS_INVALID_PARAMETER | I parametri di input non sono validi. |
STATUS_REVISION_MISMATCH | La versione specificata non corrisponde alla versione attualmente in esecuzione del sistema operativo. |
Commenti
RtlVerifyVersionInfo consente a un driver di verificare facilmente la presenza di un set obbligatorio di attributi del sistema operativo. RtlVerifyVersionInfo è l'equivalente in modalità kernel della funzione VerifyVersionInfo in modalità utente in Windows SDK. Vedere l'esempio in Windows SDK che mostra come verificare la versione di sistema.
In genere, RtlVerifyVersionInfo restituisce STATUS_SUCCESS solo se tutti i confronti hanno esito positivo. Tuttavia, la versione principale, la versione secondaria e il Service Pack vengono testati in modo sequenziale nel modo seguente:
Se la versione principale supera il minimo richiesto, la versione secondaria e il Service Pack non vengono testati. Ad esempio, se la versione principale corrente è 6.0, un test per un sistema maggiore o uguale alla versione 5.1 del Service Pack 1 ha esito positivo. La versione secondaria e il Service Pack non vengono testati.
Se la versione secondaria supera il minimo richiesto, la versione del Service Pack non viene testata. Ad esempio, se la versione principale corrente è 5.2, un test per una versione di sistema maggiore o uguale alla versione 5.1 del Service Pack 1 ha esito positivo. La versione del Service Pack non è testata.
Se la versione principale del Service Pack supera il valore minimo richiesto, la versione secondaria del Service Pack non viene testata.
Per verificare un intervallo di versioni di sistema, un driver può chiamare RtlVerifyVersionInfo due volte, una volta per verificare un limite inferiore nella versione di sistema e una volta per verificare un limite superiore nella versione di sistema.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Ntddk.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe (modalità kernel); Ntdll.dll (modalità utente) |
IRQL | PASSIVE_LEVEL |