Função VerifyVersionInfoA (winbase.h)
Compara um conjunto de requisitos de versão do sistema operacional com os valores correspondentes para a versão atualmente em execução do sistema. Essa função está sujeita a um comportamento baseado em manifesto. Para obter mais informações, consulte a seção Comentários.
Observação: Essa função foi preterida para o Windows 10. Consulte direcionando seus aplicativos para o Windows para obter mais informações.
Sintaxe
BOOL VerifyVersionInfoA(
[in] LPOSVERSIONINFOEXA lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Parâmetros
[in] lpVersionInformation
Um ponteiro para uma estrutura OSVERSIONINFOEX
Você deve definir o membro dwOSVersionInfoSize
[in] dwTypeMask
Uma máscara que indica os membros da estrutura OSVERSIONINFOEX
[in] dwlConditionMask
O tipo de comparação a ser usado para cada membro lpVersionInfo sendo comparado. Para criar esse valor, chame a função VerSetConditionMask ou a macro VER_SET_CONDITION uma vez para cada membro OSVERSIONINFOEX sendo comparado.
Valor de retorno
Se o sistema operacional em execução atender aos requisitos especificados, o valor retornado será um valor diferente de zero.
Se o sistema atual não atender aos requisitos, o valor retornado será zero e GetLastError retornará ERROR_OLD_WIN_VERSION.
Se a função falhar, o valor retornado será zero e GetLastError retornará um código de erro diferente de ERROR_OLD_WIN_VERSION.
Observações
A função
Normalmente, VerifyVersionInfo retornará um valor diferente de zero somente se todos os testes especificados forem bem-sucedidos. No entanto, as versões principais, secundárias e de service pack são testadas de maneira hierárquica porque a versão do sistema operacional é uma combinação desses valores. Se houver uma condição para a versão principal, ela substituirá as condições especificadas para a versão secundária e a versão do service pack. (Não é possível testar a versão principal maior que 5 e a versão secundária menor ou igual a 1. Se você especificar esse teste, a função alterará a solicitação para testar uma versão secundária maior que 1, pois ela está executando uma operação maior que a da versão principal.)
A função testa esses valores nesta ordem: versão principal, versão secundária e versão do service pack. A função continua testando valores enquanto eles são iguais e é interrompida quando um dos valores não atende à condição especificada. Por exemplo, se você testar um sistema maior ou igual à versão 5.1 do service pack 1, o teste terá êxito se a versão atual for 6.0. (A versão principal é maior que a versão especificada, portanto, o teste é interrompido.) Da mesma forma, se você testar um sistema maior ou igual ao service pack 1 da versão 5.1, o teste terá êxito se a versão atual for 5.2. (A versão secundária é maior que as versões especificadas, portanto, o teste é interrompido.) No entanto, se você testar um sistema maior ou igual ao service pack 1 da versão 5.1, o teste falhará se a versão atual for 5.0 service pack 2. (A versão secundária não é maior que a versão especificada, portanto, o teste é interrompido.)
Para verificar um intervalo de versões do sistema, você deve chamar VerifyVersionInfo duas vezes. Por exemplo, para verificar se a versão do sistema é maior que 5.0, mas menor ou igual a 5.1, primeira chamada VerifyVersionInfo para testar se a versão principal é 5 e a versão secundária é maior que 0, em seguida, chame VerifyVersionInfo novamente para testar se a versão principal é 5 e a versão secundária é menor ou igual a 1.
Identificar o sistema operacional atual geralmente não é a melhor maneira de determinar se um recurso específico do sistema operacional está presente. Isso ocorre porque o sistema operacional pode ter tido novos recursos adicionados em uma DLL redistribuível. Em vez de usar GetVersionEx para determinar a plataforma do sistema operacional ou o número de versão, teste a presença do próprio recurso. Para obter mais informações, consulte de versão do sistema operacional.
Para verificar se o sistema operacional atual é a versão central de mídia ou tablet do Windows, chame GetSystemMetrics.
Windows 10: VerifyVersionInfo retorna false quando chamado por aplicativos que não têm um manifesto de compatibilidade para Windows 8.1 ou Windows 10 se o parâmetro lpVersionInfo estiver definido para que ele especifique o Windows 8.1 ou Windows 10, mesmo quando a versão atual do sistema operacional for Windows 8.1 ou Windows 10. Especificamente, VerifyVersionInfo tem o seguinte comportamento:
- Se o aplicativo não tiver manifesto, VerifyVersionInfo se comportará como se a versão do sistema operacional fosse o Windows 8 (6.2).
- Se o aplicativo tiver um manifesto que contenha o GUID que corresponde ao Windows 8.1, VerifyVersionInfo se comportará como se a versão do sistema operacional fosse o Windows 8.1 (6.3).
- Se o aplicativo tiver um manifesto que contenha o GUID que corresponde ao Windows 10, VerifyVersionInfo se comportará como se a versão do sistema operacional fosse o Windows 10 (10.0).
Para manifestar seus aplicativos para Windows 8.1 ou Windows 10, consulte Direcionando seu aplicativo para Windows.
Exemplos
Para obter um exemplo, consulte Verificando a versão do sistema.
Nota
O cabeçalho winbase.h define VerifyVersionInfo como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winbase.h (inclua Windows.h) |
biblioteca | Kernel32.lib |
de DLL |
Kernel32.dll |
Consulte também
de versão do sistema operacional