Condividi tramite


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

Vedi anche

RTL_OSVERSIONINFOEXW

RTL_OSVERSIONINFOW

RtlGetVersion