Partilhar via


Função WinVerifyTrustEx (wintrust.h)

A função WinVerifyTrustEx executa uma ação de verificação de confiança em um objeto especificado e leva um ponteiro para uma estrutura WINTRUST_DATA . A função passa a consulta para um provedor de confiança, se existir, que dá suporte ao identificador de ação.

Para verificação de certificado, use as funções CertGetCertificateChain e CertVerifyCertificateChainPolicy .

Sintaxe

long WinVerifyTrustEx(
  [in] HWND          hwnd,
  [in] GUID          *pgActionID,
  [in] WINTRUST_DATA *pWinTrustData
);

Parâmetros

[in] hwnd

Identificador opcional para uma janela de chamador. Um provedor de confiança pode usar esse valor para determinar se ele pode interagir com o usuário. No entanto, os provedores de confiança normalmente executam ações de verificação sem a entrada do usuário.

Esse parâmetro pode ser um dos valores a seguir.

Value Meaning
INVALID_HANDLE_VALUE
Não há nenhum usuário interativo. O provedor de confiança executa a ação de verificação sem a assistência do usuário.
Zero
O provedor de confiança pode usar a área de trabalho interativa para exibir sua interface do usuário.
Um identificador de janela válido
Um provedor de confiança pode tratar qualquer valor diferente de INVALID_HANDLE_VALUE ou zero como um identificador de janela válido que ele pode usar para interagir com o usuário.

[in] pgActionID

Um ponteiro para uma estrutura GUID que identifica uma ação e o provedor de confiança que dá suporte a essa ação. Esse valor indica o tipo de ação de verificação a ser executada na estrutura apontada por pWinTrustData.

O serviço WinTrust foi projetado para trabalhar com provedores de confiança implementados por terceiros. Cada provedor de confiança fornece seu próprio conjunto exclusivo de identificadores de ação. Para obter informações sobre os identificadores de ação com suporte por um provedor de confiança, consulte a documentação desse provedor de confiança.

Por exemplo, a Microsoft fornece um Provedor de Confiança do Editor de Software que pode estabelecer a confiabilidade do software que está sendo baixado da Internet ou de alguma outra rede pública. O Provedor de Confiança do Editor de Software dá suporte aos seguintes identificadores de ação. Essas constantes são definidas em Softpub.h.

Value Meaning
DRIVER_ACTION_VERIFY
Verifique a autenticidade de um driver assinado pelo WHQL (Windows Hardware Quality Labs). Esse é um provedor de política de complemento do Authenticode.
HTTPSPROV_ACTION
Verifique uma conexão SSL/TLS estabelecida pelo WinINet.
OFFICESIGN_ACTION_VERIFY
Não há suporte para essa ID de Ação. Verifique a autenticidade de um arquivo de armazenamento estruturado usando o provedor de política de complemento microsoft Office Authenticode.

Windows Server 2003 e Windows XP: Essa ID de Ação tem suporte.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
Verifique apenas uma cadeia de certificados. Isso só é válido ao passar um contexto de certificado nas estruturas de entrada WinVerifyTrust .
Nota Não recomendamos usar essa função para executar a verificação de certificado. Para executar a verificação de certificado, use as funções CertGetCertificateChain e CertVerifyCertificateChainPolicy .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Verifique as cadeias de certificados criadas a partir de qualquer tipo de objeto. Um retorno de chamada é fornecido para implementar a política de cadeia final usando o contexto de cadeia para cada signatário e signatário de contador.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Verifique um arquivo ou objeto usando o provedor de política Authenticode.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
Escreva a estrutura de CRYPT_PROVIDER_DATA em um arquivo depois de chamar o provedor de política authenticode.

[in] pWinTrustData

Um ponteiro para uma estrutura de WINTRUST_DATA que contém informações de que o provedor de confiança precisa para processar o identificador de ação especificado. Normalmente, a estrutura inclui informações que identificam o objeto que o provedor de confiança deve avaliar.

O formato da estrutura depende do identificador de ação. Para obter informações sobre os dados necessários para um identificador de ação específico, consulte a documentação do provedor de confiança que dá suporte a essa ação.

Valor de retorno

Observe que, embora o tipo de retorno seja declarado como HRESULT, essa API retorna códigos de erro Win32, não use SUCCEEDED() ou FAILED() para testar o resultado.

Se o provedor de confiança verificar se o assunto é confiável para a ação especificada, o valor retornado será ERROR_SUCCESS. Caso contrário, a função retornará um código de status do provedor de confiança.

Por exemplo, um provedor de confiança pode indicar que o assunto não é confiável ou é confiável, mas com limitações ou avisos. O valor retornado pode ser um valor específico do provedor de confiança descrito na documentação de um provedor de confiança individual ou pode ser um dos seguintes códigos de erro.

Código de retorno Description
TRUST_E_SUBJECT_NOT_TRUSTED
O assunto falhou na ação de verificação especificada. A maioria dos provedores de confiança retorna um código de erro mais detalhado que descreve o motivo da falha.
Nota  

O código de retorno TRUST_E_SUBJECT_NOT_TRUSTED pode ser retornado dependendo do valor da chave do registro EnableCertPaddingCheck em HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Se EnableCertPaddingCheck estiver definido como "1", uma verificação adicional será executada para verificar se a estrutura de WIN_CERTIFICATE não contém informações desnecessárias. A verificação valida que não há dados diferentes de zero além da estrutura PKCS nº 7. Para obter mais informações, consulte o seguinte aviso de segurança: http://technet.microsoft.com/security/advisory/2915720#section1.

 
TRUST_E_PROVIDER_UNKNOWN
O provedor de confiança não é reconhecido nesse sistema.
TRUST_E_ACTION_UNKNOWN
O provedor de confiança não dá suporte à ação especificada.
TRUST_E_SUBJECT_FORM_UNKNOWN
O provedor de confiança não dá suporte ao formulário especificado para o assunto.

Requirements

Requirement Value
Cliente mínimo suportado Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
Header wintrust.h
Library Wintrust.lib
de DLL Wintrust.dll