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;

Membri

dwOSVersionInfoSize

Dimensione, 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 build 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 Vengono installati i componenti di Microsoft BackOffice.
VER_SUITE_BLADE Windows Server 2003, Web Edition è installato.
VER_SUITE_COMPUTE_SERVER Windows Server 2003, Compute Cluster Edition è installato.
VER_SUITE_DATACENTER È installato Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition o Windows 2000 Datacenter Server.
VER_SUITE_ENTERPRISE Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition o Windows 2000 Advanced Server è installato.
VER_SUITE_EMBEDDEDNT Windows XP Embedded è installato.
VER_SUITE_PERSONAL È installato Windows Vista Home Premium, Windows Vista Home Basic o Windows XP Home Edition.
VER_SUITE_SINGLEUSERTS Desktop remoto è supportato, ma è supportata una sola sessione interattiva. Questo valore viene impostato a meno che il sistema non sia in esecuzione in modalità server applicazioni.
VER_SUITE_SMALLBUSINESS (vedere la 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 seguente.
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 seguente.
VER_SUITE_STORAGE_SERVER Windows Storage Server 2003 R2 o Windows Storage Server 2003 è installato.
VER_SUITE_TERMINAL Servizi terminal è installato. 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 VER_SUITE_SMALLBUSINESS_RESTRICTED viene cancellato, ma il flag VER_SUITE_SMALLBUSINESS rimane impostato, che, in questo caso, indica che Small Business Server è stato installato in precedenza in questo sistema. Se l'installazione viene aggiornata ulteriormente a Windows Server, Enterprise Edition, il flag 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 Windows 2000 o versione professionale 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 uso futuro.

Osservazioni

Le informazioni contenute in questa struttura includono i numeri di versione principali e secondari, il numero di build, l'identificatore della piattaforma, le suite 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 una funzionalità è disponibile. Per indicazioni, vedere la documentazione relativa alla funzionalità a cui si è interessati.

Se possibile, progettare il codice di rilevamento della versione nel driver per consentire 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 build 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.

Fabbisogno

Requisito Valore
intestazione wdm.h (include Ntddk.h)

Vedere anche

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo