Estructura OSVERSIONINFOEXW (wdm.h)

La estructura de RTL_OSVERSIONINFOEXW contiene información de versión del sistema operativo.

Sintaxis

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;

Miembros

dwOSVersionInfoSize

Tamaño, en bytes, de una estructura de RTL_OSVERSIONINFOEXW . Este miembro debe establecerse antes de usar la estructura con RtlGetVersion.

dwMajorVersion

Número de versión principal del sistema operativo. Por ejemplo, para Windows 2000, el número de versión principal es cinco. Para más información, consulta las tablas en Comentarios.

dwMinorVersion

Número de versión secundaria del sistema operativo. Por ejemplo, para Windows 2000, el número de versión secundaria es cero. Para más información, consulta las tablas en Comentarios.

dwBuildNumber

Número de compilación del sistema operativo.

dwPlatformId

Plataforma del sistema operativo. Para Win32 en sistemas operativos basados en NT, RtlGetVersion devuelve el valor VER_PLATFORM_WIN32_NT.

szCSDVersion[128]

Cadena de versión de Service-Pack. Este miembro contiene una cadena terminada en null, como "Service Pack 3", que indica el Service Pack más reciente instalado en el sistema. Si no hay ningún Service Pack instalado, Es posible que RtlGetVersion no inicialice esta cadena. Inicialice szCSDVersion en cero (cadena vacía) antes de la llamada a RtlGetVersion.

wServicePackMajor

Número de versión principal del Service Pack más reciente instalado en el sistema. Por ejemplo, para Service Pack 3, el número de versión principal es tres. Si no se ha instalado ningún Service Pack, el valor es cero.

wServicePackMinor

Número de versión secundaria del Service Pack más reciente instalado en el sistema. Por ejemplo, para Service Pack 3, el número de versión secundaria es cero.

wSuiteMask

Conjuntos de productos disponibles en el sistema. Este miembro se establece en cero o en el OR bit a bit de uno o varios de los valores siguientes.

Valor Significado
VER_SUITE_BACKOFFICE Se instalan los componentes de Microsoft BackOffice.
VER_SUITE_BLADE Windows Server 2003, Web Edition está instalado.
VER_SUITE_COMPUTE_SERVER Windows Server 2003, Compute Cluster Edition está instalado.
VER_SUITE_DATACENTER Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition o Windows 2000 Datacenter Server está instalado.
VER_SUITE_ENTERPRISE Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition o Windows 2000 Advanced Server está instalado.
VER_SUITE_EMBEDDEDNT Windows XP Embedded está instalado.
VER_SUITE_PERSONAL Windows Vista Home Premium, Windows Vista Home Basic o Windows XP Home Edition está instalado.
VER_SUITE_SINGLEUSERTS Se admite Escritorio remoto, pero solo se admite una sesión interactiva. Este valor se establece a menos que el sistema se ejecute en modo de servidor de aplicaciones.
VER_SUITE_SMALLBUSINESS (consulte la nota) Microsoft Small Business Server se instaló una vez en el sistema, pero es posible que se haya actualizado a otra versión de Windows. Para obtener más información sobre este bit de marca, vea la siguiente sección Comentarios.
VER_SUITE_SMALLBUSINESS_RESTRICTED Microsoft Small Business Server se instala con la licencia de cliente restrictiva vigente. Para obtener más información sobre este bit de marca, vea la siguiente sección Comentarios.
VER_SUITE_STORAGE_SERVER Windows Storage Server 2003 R2 o Windows Storage Server 2003 está instalado.
VER_SUITE_TERMINAL Terminal Services está instalado. Este valor siempre se establece. Si se establece VER_SUITE_TERMINAL pero no se establece VER_SUITE_SINGLEUSERTS, el sistema operativo se ejecuta en modo de servidor de aplicaciones.
VER_SUITE_WH_SERVER Windows Home Server está instalado.

No debe confiar únicamente en la marca de VER_SUITE_SMALLBUSINESS para determinar si Small Business Server está instalado actualmente. Tanto esta marca como la marca VER_SUITE_SMALLBUSINESS_RESTRICTED se establecen cuando se instala este conjunto de productos. Si actualiza esta instalación a Windows Server, Standard Edition, se borra la marca de VER_SUITE_SMALLBUSINESS_RESTRICTED, pero la marca de VER_SUITE_SMALLBUSINESS permanece establecida, que, en este caso, indica que Small Business Server se instaló anteriormente en este sistema. Si esta instalación se actualiza aún más a Windows Server, Enterprise Edition, la marca de VER_SUITE_SMALLBUSINESS permanece establecida.

wProductType

Tipo de producto. Este miembro contiene información adicional sobre el sistema. Este miembro puede ser uno de los siguientes valores:

Valor Significado
VER_NT_WORKSTATION Windows 2000 o una versión profesional posterior
VER_NT_DOMAIN_CONTROLLER Controlador de dominio de Windows 2000 o posterior
VER_NT_SERVER Servidor de Windows 2000 o posterior

wReserved

Reservado para uso futuro.

Comentarios

La información de esta estructura incluye los números de versión principal y secundaria, el número de compilación, el identificador de plataforma, los conjuntos de productos instalados y el Service Pack más reciente instalado en el sistema. Esta estructura se usa con las rutinas RtlGetVersion y RtlVerifyVersionInfo .

Confiar en la información de versión no siempre es la mejor manera de probar si una característica está disponible. Para obtener instrucciones, consulte la documentación de la característica que le interesa.

Si es posible, diseñe el código de detección de versiones en el controlador para permitir que el controlador se ejecute en versiones futuras de Windows. Si el controlador requiere una versión determinada del sistema operativo, asegúrese de tratar esta versión como la versión mínima admitida y no como la única versión en la que se pueda ejecutar el controlador.

En la tabla siguiente se resume la información de versión que devuelven las versiones compatibles de Windows. Use la información de la columna "Other" o el número de compilación para distinguir entre sistemas operativos con números de versión idénticos.

Sistema operativo Número de la versión dwMajorVersion dwMinorVersion Otros
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 (todas las versiones) 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 No aplicable
Windows XP Professional x64 Edition (consulta la nota) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5,1 5 1 No aplicable
Windows 2000 5.0 5 0 No aplicable

Solo se puede ejecutar un controlador en modo kernel de 64 bits en Windows XP Professional x64 Edition. Por lo tanto, un controlador en modo kernel de 32 bits puede omitir de forma segura la comprobación de esta versión de Windows.

Requisitos

Requisito Valor
Header wdm.h (incluya Ntddk.h)

Consulte también

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo