Condividi tramite


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)

Vedi anche

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo