Estrutura OSVERSIONINFOA (winnt.h)

Contém informações de versão do sistema operacional. As informações incluem números de versão principais e secundários, um número de build, um identificador de plataforma e texto descritivo sobre o sistema operacional. Essa estrutura é usada com a função GetVersionEx .

Para obter informações de versão adicionais, use a estrutura OSVERSIONINFOEX com GetVersionEx .

Sintaxe

typedef struct _OSVERSIONINFOA {
  DWORD dwOSVersionInfoSize;
  DWORD dwMajorVersion;
  DWORD dwMinorVersion;
  DWORD dwBuildNumber;
  DWORD dwPlatformId;
  CHAR  szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;

Membros

dwOSVersionInfoSize

O tamanho dessa estrutura de dados, em bytes. Defina esse membro como sizeof(OSVERSIONINFO).

dwMajorVersion

O número de versão principal do sistema operacional. Para obter mais informações, consulte Comentários.

dwMinorVersion

O número de versão secundária do sistema operacional. Para obter mais informações, consulte Comentários.

dwBuildNumber

O número de build do sistema operacional.

dwPlatformId

A plataforma do sistema operacional. Esse membro pode ser o valor a seguir.

Valor Significado
VER_PLATFORM_WIN32_NT
2
O sistema operacional é Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP ou Windows 2000.

szCSDVersion[128]

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 tiver sido instalado, a cadeia de caracteres estará vazia.

Comentários

Confiar em informações de versão não é a melhor maneira de testar um recurso. Em vez disso, consulte a documentação do recurso de interesse. Para obter mais informações sobre técnicas comuns para detecção de recursos, consulte Versão do sistema operacional.

Se você precisar de um sistema operacional específico, use-o como uma versão mínima com suporte, em vez de projetar o teste para um sistema operacional. Dessa forma, seu código de detecção continuará funcionando em versões futuras do Windows.

A tabela a seguir resume os valores retornados por versões com suporte do Windows. Use as informações na coluna rotulada como "Outros" para distinguir entre sistemas operacionais com números de versão idênticos.

Sistema operacional Número de versão dwMajorVersion dwMinorVersion Outro
Windows 10 10.0* 10 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2016 10.0* 10 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 8.1 6.3* 6 3 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 R2 6.3* 6 3 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 8 6.2 6 2 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 2008 6,0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista 6,0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
Windows XP 5.1 5 1 Não aplicável
Windows 2000 5.0 5 0 Não aplicável
*Para aplicativos que foram manifestados para Windows 8.1 ou Windows 10. Os aplicativos não manifestados para Windows 8.1 ou Windows 10 retornarão o valor de versão do sistema operacional Windows 8 (6.2). Para manifestar seus aplicativos para Windows 8.1 ou Windows 10, consulte Direcionando seu aplicativo para Windows.
 

Exemplos

Para obter um exemplo, consulte Obtendo a versão do sistema.

Observação

O cabeçalho winnt.h define OSVERSIONINFO como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho winnt.h (inclua Windows.h)

Confira também

OSVERSIONINFOEX

APIs auxiliares de versão