Estrutura OSVERSIONINFOEXW (wdm.h)

A estrutura RTL_OSVERSIONINFOEXW contém informações de versão do sistema operacional.

Sintaxe

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;

Membros

dwOSVersionInfoSize

O tamanho, em bytes, de uma estrutura RTL_OSVERSIONINFOEXW . Esse membro deve ser definido antes que a estrutura seja usada com RtlGetVersion.

dwMajorVersion

O número de versão principal do sistema operacional. Por exemplo, para o Windows 2000, o número da versão principal é cinco. Para obter mais informações, confira a tabela em Comentários.

dwMinorVersion

O número de versão secundária do sistema operacional. Por exemplo, para o Windows 2000, o número de versão secundária é zero. Para obter mais informações, confira a tabela em Comentários.

dwBuildNumber

O número de build do sistema operacional.

dwPlatformId

A plataforma do sistema operacional. Para Win32 em sistemas operacionais baseados em NT, RtlGetVersion retorna o valor VER_PLATFORM_WIN32_NT.

szCSDVersion[128]

A cadeia de caracteres de versão do service pack. Esse membro contém uma cadeia de caracteres terminada em nulo, como "Service Pack 3", que indica o service pack mais recente instalado no sistema. Se nenhum service pack estiver instalado, o RtlGetVersion poderá não inicializar essa cadeia de caracteres. Inicialize szCSDVersion como zero (cadeia de caracteres vazia) antes da chamada para RtlGetVersion.

wServicePackMajor

O número de versão principal do service pack mais recente instalado no sistema. Por exemplo, para Service Pack 3, o número de versão principal é três. Se nenhum service pack tiver sido instalado, o valor será zero.

wServicePackMinor

O número de versão secundária do service pack mais recente instalado no sistema. Por exemplo, para o Service Pack 3, o número de versão secundária é zero.

wSuiteMask

Os pacotes de produtos disponíveis no sistema. Esse membro é definido como zero ou como OR bit a bit de um ou mais dos valores a seguir.

Valor Significado
VER_SUITE_BACKOFFICE Os componentes do Microsoft BackOffice estão instalados.
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 O Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition ou Windows 2000 Datacenter Server está instalado.
VER_SUITE_ENTERPRISE O Windows Server 2008 Enterprise, Windows Server 2003, Edição Enterprise ou Windows 2000 Advanced Server está instalado.
VER_SUITE_EMBEDDEDNT O Windows XP Embedded está instalado.
VER_SUITE_PERSONAL O Windows Vista Home Premium, o Windows Vista Home Basic ou o Windows XP Home Edition está instalado.
VER_SUITE_SINGLEUSERTS Há suporte para a Área de Trabalho Remota, mas há suporte apenas para uma sessão interativa. Esse valor é definido, a menos que o sistema esteja em execução no modo de servidor de aplicativos.
VER_SUITE_SMALLBUSINESS (consulte a observação) O Microsoft Small Business Server já foi instalado no sistema, mas pode ter sido atualizado para outra versão do Windows. Para obter mais informações sobre esse bit de sinalizador, consulte a seção Comentários a seguir.
VER_SUITE_SMALLBUSINESS_RESTRICTED O Microsoft Small Business Server é instalado com a licença de cliente restritiva em vigor. Para obter mais informações sobre esse bit de sinalizador, consulte a seção Comentários a seguir.
VER_SUITE_STORAGE_SERVER O Windows Storage Server 2003 R2 ou o Windows Storage Server 2003 está instalado.
VER_SUITE_TERMINAL Os Serviços de Terminal estão instalados. Esse valor é sempre definido. Se VER_SUITE_TERMINAL estiver definido, mas VER_SUITE_SINGLEUSERTS não estiver definido, o sistema operacional estará em execução no modo de servidor de aplicativos.
VER_SUITE_WH_SERVER O Windows Home Server está instalado.

Você não deve depender apenas do sinalizador VER_SUITE_SMALLBUSINESS para determinar se o Small Business Server está instalado no momento. Esse sinalizador e o sinalizador VER_SUITE_SMALLBUSINESS_RESTRICTED são definidos quando este pacote de produtos é instalado. Se você atualizar essa instalação para o Windows Server, Standard Edition, o sinalizador VER_SUITE_SMALLBUSINESS_RESTRICTED será limpo, mas o sinalizador VER_SUITE_SMALLBUSINESS permanecerá definido, o que, nesse caso, indica que o Small Business Server foi instalado anteriormente nesse sistema. Se essa instalação for atualizada para o Windows Server, Edição Enterprise, o sinalizador VER_SUITE_SMALLBUSINESS permanecerá definido.

wProductType

O tipo de produto. Esse membro contém informações adicionais sobre o sistema. Esse membro pode ser um dos seguintes valores:

Valor Significado
VER_NT_WORKSTATION Windows 2000 ou versão profissional posterior
VER_NT_DOMAIN_CONTROLLER Controlador de domínio do Windows 2000 ou posterior
VER_NT_SERVER Windows 2000 ou posterior

wReserved

Reservado para uso futuro.

Comentários

As informações nessa estrutura incluem os números de versão principal e secundária, o número de build, o identificador de plataforma, os pacotes de produtos instalados e o service pack mais recente instalado no sistema. Essa estrutura é usada com as rotinas RtlGetVersion e RtlVerifyVersionInfo .

Contar com informações de versão nem sempre é a melhor maneira de testar se um recurso está disponível. Para obter diretrizes, consulte a documentação do recurso no qual você está interessado.

Se possível, projete o código de detecção de versão em seu driver para permitir que o driver seja executado em versões futuras do Windows. Se o driver exigir uma versão específica do sistema operacional, trate essa versão como a versão mínima com suporte e não como a única versão na qual o driver pode ser executado.

A tabela a seguir resume as informações de versão retornadas por versões com suporte do Windows. Use as informações na coluna "Outros" ou no número de build para distinguir entre sistemas operacionais com números de versão idênticos.

Sistema operacional Número de versão dwMajorVersion dwMinorVersion Outro
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 as versões) 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 Não aplicável
Windows XP Professional x64 Edition (consulte a observação) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5.1 5 1 Não aplicável
Windows 2000 5.0 5 0 Não aplicável

Somente um driver de modo kernel de 64 bits pode ser executado no Windows XP Professional x64 Edition. Portanto, um driver de modo kernel de 32 bits pode omitir com segurança a verificação dessa versão do Windows.

Requisitos

Requisito Valor
Cabeçalho wdm.h (inclua Ntddk.h)

Confira também

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo