Funzione VerifyVersionInfoW (winbase.h)
Confronta un set di requisiti di versione del sistema operativo con i valori corrispondenti per la versione attualmente in esecuzione del sistema. Questa funzione è soggetta al comportamento basato su manifesto. Per altre informazioni, vedere la sezione Osservazioni.
Nota: Questa funzione è stata deprecata per Windows 10. Per altre informazioni, vedi destinate alle applicazioni per Windows.
Sintassi
BOOL VerifyVersionInfoW(
[in] LPOSVERSIONINFOEXW lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Parametri
[in] lpVersionInformation
Puntatore a una struttura OSVERSIONINFOEX contenente i requisiti di versione del sistema operativo da confrontare. Il parametro
È necessario impostare il membro dwOSVersionInfoSize
[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 utilizzare per ogni lpVersionInfo membro confrontato. Per compilare questo valore, chiamare la funzione di 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.
Osservazioni
La funzione VerifyVersionInfo
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 la versione del 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 modificherà la richiesta di test per una versione secondaria maggiore di 1 perché sta eseguendo un'operazione maggiore rispetto alla 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 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 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 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 di sistema sia maggiore di 5.0 ma minore o uguale a 5.1, chiamare prima VerifyVersionInfo per verificare che la versione principale sia 5 e che la versione secondaria sia maggiore di 0, quindi chiamare di nuovo VerifyVersionInfo per verificare che la versione principale sia 5 e che la versione secondaria sia minore o uguale a 1.
L'identificazione del sistema operativo corrente non è in genere il modo migliore per determinare se è presente una particolare funzionalità del sistema operativo. Ciò è dovuto al fatto che il sistema operativo potrebbe avere aggiunto nuove funzionalità in una DLL ridistribuibile. Invece di usare GetVersionEx per determinare la piattaforma o il numero di versione del sistema operativo, verificare 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 dispongono di un manifesto di compatibilità per Windows 8.1 o Windows 10 se il parametro lpVersionInfo è impostato in modo che specifichi Windows 8.1 o Windows 10, anche quando la versione corrente del sistema operativo è 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 sia Windows 8 (6.2).
- Se l'applicazione ha un manifesto che contiene il GUID corrispondente a Windows 8.1, VerifyVersionInfo si comporta come se la versione del sistema operativo sia 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 sia Windows 10 (10.0).
Per manifesto delle applicazioni per Windows 8.1 o Windows 10, vedi Targeting your application for Windows.
Esempi
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 indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
versione del sistema operativo