Struttura OSVERSIONINFOA (winnt.h)
Contiene informazioni sulla versione del sistema operativo. Le informazioni includono numeri di versione principali e secondari, un numero di build, un identificatore di piattaforma e un testo descrittivo sul sistema operativo. Questa struttura viene usata con la funzione GetVersionEx
Per ottenere informazioni aggiuntive sulla versione, usare invece la struttura di OSVERSIONINFOEX
Sintassi
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
Membri
dwOSVersionInfoSize
Dimensioni di questa struttura di dati, in byte. Impostare questo membro su sizeof(OSVERSIONINFO)
.
dwMajorVersion
Numero di versione principale del sistema operativo. Per altre informazioni, vedere Osservazioni.
dwMinorVersion
Numero di versione secondaria del sistema operativo. Per altre informazioni, vedere Osservazioni.
dwBuildNumber
Numero di build del sistema operativo.
dwPlatformId
Piattaforma del sistema operativo. Questo membro può essere il valore seguente.
Valore | Significato |
---|---|
|
Il sistema operativo è Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP o Windows 2000. |
szCSDVersion[128]
Stringa con terminazione Null, ad esempio "Service Pack 3", che indica l'ultimo Service Pack installato nel sistema. Se non è stato installato alcun Service Pack, la stringa è vuota.
Osservazioni
Fare affidamento sulle informazioni sulla versione non è il modo migliore per testare una funzionalità. Fare invece riferimento alla documentazione relativa alla funzionalità di interesse. Per altre informazioni sulle tecniche comuni per il rilevamento delle funzionalità, vedere versione del sistema operativo.
Se è necessario un particolare sistema operativo, assicurarsi di usarlo come versione minima supportata, anziché progettare il test per il sistema operativo. In questo modo, il codice di rilevamento continuerà a funzionare sulle versioni future di Windows.
La tabella seguente riepiloga i valori restituiti dalle versioni supportate di Windows. Usare le informazioni nella colonna con etichetta "Altro" per distinguere tra i sistemi operativi con numeri di versione identici.
Sistema operativo | Numero di versione | dwMajorVersion | dwMinorVersion | Altro |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2003 R2 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) != 0 |
Windows Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP | 5.1 | 5 | 1 | Non applicabile |
Windows 2000 | 5.0 | 5 | 0 | Non applicabile |
* Per le applicazioni che sono state manifestate per Windows 8.1 o Windows 10. Le applicazioni non manifestate per Windows 8.1 o Windows 10 restituiranno il valore della versione del sistema operativo Windows 8 (6.2). Per manifestare le applicazioni per Windows 8.1 o Windows 10, fare riferimento a Destinazione dell'applicazione per Windows. |
Esempi
Per un esempio, vedere Recupero della versione di sistema.
Nota
L'intestazione winnt.h definisce OSVERSIONINFO 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] |
intestazione |
winnt.h (include Windows.h) |