Struttura OSVERSIONINFOEXW (wdm.h)
La struttura RTL_OSVERSIONINFOEXW contiene informazioni sulla versione del sistema operativo.
Sintassi
typedef struct _OSVERSIONINFOEXW {
ULONG dwOSVersionInfoSize;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG dwPlatformId;
WCHAR szCSDVersion[128];
USHORT wServicePackMajor;
USHORT wServicePackMinor;
USHORT wSuiteMask;
UCHAR wProductType;
UCHAR wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
Members
dwOSVersionInfoSize
Dimensioni, in byte, di una struttura RTL_OSVERSIONINFOEXW . Questo membro deve essere impostato prima che venga usata la struttura con RtlGetVersion.
dwMajorVersion
Numero di versione principale del sistema operativo. Ad esempio, per Windows 2000, il numero di versione principale è cinque. Per altre informazioni, vedere la tabella in Osservazioni.
dwMinorVersion
Numero di versione secondaria del sistema operativo. Ad esempio, per Windows 2000, il numero di versione secondaria è zero. Per altre informazioni, vedere la tabella in Osservazioni.
dwBuildNumber
Numero di compilazione del sistema operativo.
dwPlatformId
Piattaforma del sistema operativo. Per Win32 nei sistemi operativi basati su NT, RtlGetVersion restituisce il valore VER_PLATFORM_WIN32_NT.
szCSDVersion[128]
Stringa di versione del Service Pack. Questo membro contiene una stringa con terminazione null, ad esempio "Service Pack 3", che indica l'ultimo Service Pack installato nel sistema. Se non è installato alcun service pack, RtlGetVersion potrebbe non inizializzare questa stringa. Inizializzare szCSDVersion su zero (stringa vuota) prima della chiamata a RtlGetVersion.
wServicePackMajor
Numero di versione principale del Service Pack più recente installato nel sistema. Ad esempio, per Service Pack 3, il numero di versione principale è tre. Se non è stato installato alcun Service Pack, il valore è zero.
wServicePackMinor
Numero di versione secondaria del Service Pack più recente installato nel sistema. Ad esempio, per Service Pack 3, il numero di versione secondaria è zero.
wSuiteMask
Le suite di prodotti disponibili nel sistema. Questo membro è impostato su zero o sull'OR bit per bit di uno o più dei valori seguenti.
Valore | Significato |
---|---|
VER_SUITE_BACKOFFICE | I componenti di Microsoft BackOffice sono installati. |
VER_SUITE_BLADE | Windows Server 2003, Web Edition è installato. |
VER_SUITE_COMPUTE_SERVER | Windows Server 2003, Compute Cluster Edition è installato. |
VER_SUITE_DATACENTER | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition o Windows 2000 Datacenter Server è installato. |
VER_SUITE_ENTERPRISE | Windows Server 2008 Enterprise, Windows Server 2003, edizione Enterprise o Windows 2000 Advanced Server è installato. |
VER_SUITE_EMBEDDEDNT | Windows XP Embedded è installato. |
VER_SUITE_PERSONAL | Windows Vista Home Premium, Windows Vista Home Basic o Windows XP Home Edition è installato. |
VER_SUITE_SINGLEUSERTS | Desktop remoto è supportato, ma è supportata solo una sessione interattiva. Questo valore viene impostato a meno che il sistema non sia in esecuzione in modalità server applicazioni. |
VER_SUITE_SMALLBUSINESS (vedere nota) | Microsoft Small Business Server è stato installato nel sistema, ma potrebbe essere stato aggiornato a un'altra versione di Windows. Per altre informazioni su questo bit di flag, vedere la sezione Osservazioni seguenti. |
VER_SUITE_SMALLBUSINESS_RESTRICTED | Microsoft Small Business Server viene installato con la licenza client restrittiva in vigore. Per altre informazioni su questo bit di flag, vedere la sezione Osservazioni seguenti. |
VER_SUITE_STORAGE_SERVER | Windows Storage Server 2003 R2 o Windows Storage Server 2003 è installato. |
VER_SUITE_TERMINAL | I servizi terminal sono installati. Questo valore è sempre impostato. Se VER_SUITE_TERMINAL è impostato, ma VER_SUITE_SINGLEUSERTS non è impostato, il sistema operativo è in esecuzione in modalità server applicazioni. |
VER_SUITE_WH_SERVER | Windows Home Server è installato. |
Non è consigliabile basarsi esclusivamente sul flag VER_SUITE_SMALLBUSINESS per determinare se Small Business Server è attualmente installato. Sia questo flag che il flag VER_SUITE_SMALLBUSINESS_RESTRICTED vengono impostati quando questa suite di prodotti è installata. Se si aggiorna questa installazione a Windows Server, Standard Edition, il flag di VER_SUITE_SMALLBUSINESS_RESTRICTED viene cancellato, ma il flag di VER_SUITE_SMALLBUSINESS rimane impostato, che, in questo caso, indica che Small Business Server è stato installato in precedenza in questo sistema. Se questa installazione viene aggiornata ulteriormente a Windows Server, edizione Enterprise, il flag di VER_SUITE_SMALLBUSINESS rimane impostato.
wProductType
Tipo di prodotto. Questo membro contiene informazioni aggiuntive sul sistema. Questo membro può essere uno dei valori seguenti:
Valore | Significato |
---|---|
VER_NT_WORKSTATION | Versione professionale di Windows 2000 o successiva |
VER_NT_DOMAIN_CONTROLLER | Controller di dominio Windows 2000 o versione successiva |
VER_NT_SERVER | Server Windows 2000 o versione successiva |
wReserved
Riservato per utilizzi futuri.
Commenti
Le informazioni contenute in questa struttura includono i numeri di versione principali e secondari, il numero di compilazione, l'identificatore della piattaforma, i pacchetti di prodotti installati e il Service Pack più recente installato nel sistema. Questa struttura viene usata con le routine RtlGetVersion e RtlVerifyVersionInfo .
L'uso delle informazioni sulla versione non è sempre il modo migliore per verificare se è disponibile una funzionalità. Per indicazioni, vedere la documentazione per la funzionalità a cui si è interessati.
Se possibile, progettare il codice di rilevamento della versione nel driver per abilitare l'esecuzione del driver nelle versioni future di Windows. Se il driver richiede una versione specifica del sistema operativo, assicurarsi di considerare questa versione come la versione minima supportata e non come l'unica versione in cui è possibile eseguire il driver.
La tabella seguente riepiloga le informazioni sulla versione restituite dalle versioni supportate di Windows. Usare le informazioni nella colonna "Altro" o nel numero di compilazione per distinguere tra i sistemi operativi con numeri di versione identici.
Sistema operativo | Numero di versione | dwMajorVersion | dwMinorVersion | Altro |
---|---|---|---|---|
Windows 11 | 10,0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2022 | 10,0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2019 | 10,0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows 10 (tutte le versioni) | 10,0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10,0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3 | 6 | 3 | wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3 | 6 | 3 | wProductType == VER_NT_WORKSTATION |
Windows 8 | 6,2 | 6 | 2 | wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6,2 | 6 | 2 | wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Home Server | 5,2 | 5 | 2 | wSuiteMask == VER_SUITE_WH_SERVER |
Windows Server 2003 | 5,2 | 5 | 2 | Non applicabile |
Windows XP Professional x64 Edition (vedere la nota) | 5,2 | 5 | 2 | wProductType == VER_NT_WORKSTATION |
Windows XP | 5.1 | 5 | 1 | Non applicabile |
Windows 2000 | 5.0 | 5 | 0 | Non applicabile |
Solo un driver in modalità kernel a 64 bit può essere eseguito in Windows XP Professional x64 Edition. Pertanto, un driver in modalità kernel a 32 bit può omettere in modo sicuro il controllo di questa versione di Windows.
Requisiti
Requisito | Valore |
---|---|
Intestazione | wdm.h (include Ntddk.h) |