Funzione VerifyVersionInfoA (winbase.h)
Confronta un set di requisiti di versione del sistema operativo ai valori corrispondenti per la versione attualmente in esecuzione del sistema. Questa funzione è soggetta al comportamento basato sul manifesto. Per altre informazioni, vedere la sezione Osservazioni.
Nota: Questa funzione è stata deprecata per Windows 10. Per altre informazioni, vedere la destinazione delle applicazioni per Windows .
Sintassi
BOOL VerifyVersionInfoA(
[in] LPOSVERSIONINFOEXA lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Parametri
[in] lpVersionInformation
Puntatore a una struttura OSVERSIONINFOEX contenente i requisiti della versione del sistema operativo da confrontare. Il parametro dwTypeMask indica i membri di questa struttura che contengono informazioni da confrontare.
È necessario impostare il membro dwOSVersionInfoSize di questa struttura su sizeof(OSVERSIONINFOEX)
. È anche necessario specificare dati validi per i membri indicati da dwTypeMask. La funzione ignora i membri della struttura per i quali il bit dwTypeMask corrispondente non è impostato.
[in] dwTypeMask
Maschera che indica i membri della struttura OSVERSIONINFOEX da testare. Questo parametro può essere uno o più dei valori seguenti.
[in] dwlConditionMask
Tipo di confronto da usare per ogni membro lpVersionInfo confrontato. Per compilare questo valore, chiamare la funzione VerSetConditionMask o la macro VER_SET_CONDITION una volta per ogni membro OSVERSIONINFOEX confrontato.
Valore restituito
Se il sistema operativo attualmente in esecuzione soddisfa i requisiti specificati, il valore restituito è un valore diverso da zero.
Se il sistema corrente non soddisfa i requisiti, il valore restituito è zero e GetLastError restituisce ERROR_OLD_WIN_VERSION.
Se la funzione ha esito negativo, il valore restituito è zero e GetLastError restituisce un codice di errore diverso da ERROR_OLD_WIN_VERSION.
Commenti
La funzione VerifyVersionInfo recupera le informazioni sulla versione del sistema operativo attualmente in esecuzione e la confronta con i membri validi della struttura lpVersionInfo . Ciò consente di determinare facilmente la presenza di un set obbligatorio di condizioni di versione del sistema operativo. È preferibile usare VerifyVersionInfo anziché chiamare la funzione GetVersionEx per eseguire confronti personalizzati.
In genere , VerifyVersionInfo restituisce un valore diverso da zero solo se tutti i test specificati hanno esito positivo. Tuttavia, le versioni principali, secondarie e service pack vengono testate in modo gerarchico perché la versione del sistema operativo è una combinazione di questi valori. Se esiste una condizione per la versione principale, sostituisce le condizioni specificate per la versione secondaria e il Service Pack. Non è possibile testare la versione principale maggiore di 5 e la versione secondaria minore o uguale a 1. Se si specifica un test di questo tipo, la funzione cambierà la richiesta di testare per una versione secondaria maggiore di 1 perché esegue un'operazione maggiore di quella della versione principale.
La funzione verifica questi valori in questo ordine: versione principale, versione secondaria e versione del Service Pack. La funzione continua a testare i valori mentre sono uguali e si arresta quando uno dei valori non soddisfa la condizione specificata. Ad esempio, se si esegue il test per un sistema maggiore o uguale alla versione 5.1 del Service Pack 1, il test ha esito positivo se la versione corrente è 6.0. La versione principale è maggiore della versione specificata, quindi il test si arresta. Allo stesso modo, se si esegue il test per un sistema maggiore o uguale alla versione 5.1 del Service Pack 1, il test ha esito positivo se la versione corrente è 5.2. La versione secondaria è maggiore delle versioni specificate, quindi il test si arresta. Tuttavia, se si esegue il test per un sistema maggiore o uguale alla versione 5.1 del Service Pack 1, il test ha esito negativo se la versione corrente è 5.0 Service Pack 2. La versione secondaria non è maggiore della versione specificata, quindi il test si arresta.
Per verificare un intervallo di versioni di sistema, è necessario chiamare VerifyVersionInfo due volte. Ad esempio, per verificare che la versione del sistema sia maggiore di 5.0 ma minore o uguale a 5.1, chiamare prima Di tutto VerifyVersionInfo per verificare che la versione principale sia 5 e la versione secondaria sia maggiore di 0, quindi chiamare di nuovo VerifyVersionInfo per testare che la versione principale è 5 e la versione secondaria è minore o uguale a 1.
L'identificazione del sistema operativo corrente non è in genere il modo migliore per determinare se è presente una determinata funzionalità del sistema operativo. Questo perché il sistema operativo potrebbe avere nuove funzionalità aggiunte in una DLL ridistribuibile. Anziché usare GetVersionEx per determinare il numero di versione o la piattaforma del sistema operativo, testare la presenza della funzionalità stessa. Per altre informazioni, vedere Versione del sistema operativo.
Per verificare se il sistema operativo corrente è la versione Media Center o Tablet PC di Windows, chiamare GetSystemMetrics.
Windows 10: VerifyVersionInfo restituisce false quando viene chiamato dalle applicazioni che non hanno un manifesto di compatibilità per Windows 8.1 o Windows 10 se il parametro lpVersionInfo è impostato in modo che specifica Windows 8.1 o Windows 10, anche quando il sistema operativo corrente la versione è Windows 8.1 o Windows 10. In particolare , VerifyVersionInfo ha il comportamento seguente:
- Se l'applicazione non ha manifesto, VerifyVersionInfo si comporta come se la versione del sistema operativo è Windows 8 (6.2).
- Se l'applicazione ha un manifesto contenente il GUID corrispondente a Windows 8.1, VerifyVersionInfo si comporta come se la versione del sistema operativo è Windows 8.1 (6.3).
- Se l'applicazione ha un manifesto che contiene il GUID corrispondente a Windows 10, VerifyVersionInfo si comporta come se la versione del sistema operativo è Windows 10 (10.0).
Per manifestare le applicazioni per Windows 8.1 o Windows 10, vedere Destinazione dell'applicazione per Windows.
Esempio
Per un esempio, vedere Verifica della versione di sistema.
Nota
L'intestazione winbase.h definisce VerifyVersionInfo come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
Versione del sistema operativo