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 |
---|---|
|
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) |