Freigeben über


WinVerifyTrustEx-Funktion (wintrust.h)

Die WinVerifyTrustEx-Funktion führt eine Vertrauensüberprüfungsaktion für ein angegebenes Objekt aus und verwendet einen Zeiger auf eine WINTRUST_DATA Struktur. Die Funktion übergibt die Anfrage an einen Vertrauensanbieter, falls vorhanden, der den Aktionsbezeichner unterstützt.

Verwenden Sie für die Zertifikatüberprüfung die Funktionen CertGetCertificateChain und CertVerifyCertificateChainPolicy .

Syntax

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

Die Parameter

[in] hwnd

Optionales Handle für ein Anruferfenster. Ein Vertrauensanbieter kann diesen Wert verwenden, um zu bestimmen, ob er mit dem Benutzer interagieren kann. Vertrauensanbieter führen jedoch in der Regel Überprüfungsaktionen ohne Eingabe des Benutzers aus.

Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
INVALID_HANDLE_VALUE
Es gibt keinen interaktiven Benutzer. Der Vertrauensanbieter führt die Überprüfungsaktion ohne Unterstützung des Benutzers aus.
Null
Der Vertrauensanbieter kann den interaktiven Desktop verwenden, um seine Benutzeroberfläche anzuzeigen.
Ein gültiger Fensterziehpunkt
Ein Vertrauensanbieter kann einen anderen Wert als INVALID_HANDLE_VALUE oder Null als gültiges Fensterhandle behandeln, mit dem er mit dem Benutzer interagieren kann.

[in] pgActionID

Ein Zeiger auf eine GUID-Struktur , die eine Aktion und den Vertrauensanbieter identifiziert, der diese Aktion unterstützt. Dieser Wert gibt den Typ der Überprüfungsaktion an, die für die Struktur ausgeführt werden soll, auf die pWinTrustData verweist.

Der WinTrust-Dienst wurde entwickelt, um mit Vertrauensanbietern zu arbeiten, die von Drittanbietern implementiert werden. Jeder Vertrauensanbieter stellt einen eigenen eindeutigen Satz von Aktionsbezeichnern bereit. Informationen zu den aktionsbezeichnern, die von einem Vertrauensanbieter unterstützt werden, finden Sie in der Dokumentation zu diesem Vertrauensanbieter.

Beispielsweise stellt Microsoft einen Software Publisher Trust Provider bereit, der die Vertrauenswürdigkeit von Software, die aus dem Internet oder einem anderen öffentlichen Netzwerk heruntergeladen wird, einrichten kann. Der Software Publisher Trust Provider unterstützt die folgenden Aktions-IDs. Diese Konstanten werden in Softpub.h definiert.

Wert Bedeutung
DRIVER_ACTION_VERIFY
Überprüfen Sie die Echtheit eines signierten Windows Hardware Quality Labs (WHQL)-Treibers. Dies ist ein Authenticode-Add-On-Richtlinienanbieter.
HTTPSPROV_ACTION
Überprüfen Sie eine SSL/TLS-Verbindung, die von WinINet hergestellt wurde.
OFFICESIGN_ACTION_VERIFY
Diese Aktions-ID wird nicht unterstützt. Überprüfen Sie die Authentizität einer strukturierten Speicherdatei mithilfe des Microsoft Office Authenticode-Add-On-Richtlinienanbieters.

Windows Server 2003 und Windows XP: Diese Aktions-ID wird unterstützt.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
Überprüfen Sie nur eine Zertifikatkette. Dies ist nur gültig, wenn ein Zertifikatkontext in den WinVerifyTrust-Eingabestrukturen übergeben wird.
Anmerkung Es wird nicht empfohlen, diese Funktion zum Durchführen der Zertifikatüberprüfung zu verwenden. Verwenden Sie zum Durchführen der Zertifikatüberprüfung die Funktionen CertGetCertificateChain und CertVerifyCertificateChainPolicy .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Überprüfen Sie Zertifikatketten, die von einem beliebigen Objekttyp erstellt wurden. Ein Rückruf wird bereitgestellt, um die endgültige Kettenrichtlinie mithilfe des Kettenkontexts für jeden Signierer und Indikator signierer zu implementieren.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Überprüfen Sie eine Datei oder ein Objekt mithilfe des Authenticode-Richtlinienanbieters.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
Schreiben Sie die CRYPT_PROVIDER_DATA Struktur in eine Datei, nachdem Sie den Authenticode-Richtlinienanbieter aufgerufen haben.

[in] pWinTrustData

Ein Zeiger auf eine WINTRUST_DATA Struktur, die Informationen enthält, die der Vertrauensanbieter zum Verarbeiten des angegebenen Aktionsbezeichners benötigt. In der Regel enthält die Struktur Informationen, die das Objekt identifizieren, das der Vertrauensanbieter auswerten muss.

Das Format der Struktur hängt vom Aktionsbezeichner ab. Informationen zu den daten, die für einen bestimmten Aktionsbezeichner erforderlich sind, finden Sie in der Dokumentation für den Vertrauensanbieter, der diese Aktion unterstützt.

Rückgabewert

Beachten Sie, dass der Rückgabetyp als HRESULT deklariert wird, dass diese API Win32-Fehlercodes zurückgibt, nicht ERFOLGREICH() oder FAILED() verwenden, um das Ergebnis zu testen.

Wenn der Vertrauensanbieter überprüft, ob der Betreff für die angegebene Aktion vertrauenswürdig ist, wird der Rückgabewert ERROR_SUCCESS. Andernfalls gibt die Funktion einen Statuscode vom Vertrauensanbieter zurück.

Beispielsweise kann ein Vertrauensanbieter angeben, dass der Betreff nicht vertrauenswürdig ist oder vertrauenswürdig ist, aber mit Einschränkungen oder Warnungen. Der Rückgabewert kann ein vertrauenswürdiger anbieterspezifischer Wert sein, der in der Dokumentation für einen einzelnen Vertrauensanbieter beschrieben wird, oder es kann sich um einen der folgenden Fehlercodes handeln.

Rückgabecode Description
TRUST_E_SUBJECT_NOT_TRUSTED
Der Betreff hat die angegebene Überprüfungsaktion fehlgeschlagen. Die meisten Vertrauensanbieter geben einen detaillierteren Fehlercode zurück, der den Grund für den Fehler beschreibt.
Anmerkung  

Der TRUST_E_SUBJECT_NOT_TRUSTED Rückgabecode kann abhängig vom Wert des EnableCertPaddingCheck-Registrierungsschlüssels unter HKLM\Software\Microsoft\Cryptography\Wintrust\Config zurückgegeben werden. Wenn EnableCertPaddingCheck auf "1" festgelegt ist, wird eine zusätzliche Überprüfung durchgeführt, um zu überprüfen, ob die WIN_CERTIFICATE Struktur keine zusätzlichen Informationen enthält. Die Überprüfung überprüft, ob es keine Nicht-Null-Daten gibt, die über die PKCS #7-Struktur hinausgehen. Weitere Informationen finden Sie in der folgenden Sicherheitsempfehlung: http://technet.microsoft.com/security/advisory/2915720#section1

 
TRUST_E_PROVIDER_UNKNOWN
Der Vertrauensanbieter wird auf diesem System nicht erkannt.
TRUST_E_ACTION_UNKNOWN
Der Vertrauensanbieter unterstützt die angegebene Aktion nicht.
TRUST_E_SUBJECT_FORM_UNKNOWN
Der Vertrauensanbieter unterstützt das für den Betreff angegebene Formular nicht.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header wintrust.h
Library Wintrust.lib
DLL Wintrust.dll