WinVerifyTrustEx 函式會在指定的物件上執行信任驗證動作,並取得WINTRUST_DATA結構的指標。 函式會將查詢傳遞至支援動作識別碼的 信任提供者 (如果存在的話)。
針對憑證驗證,請使用 CertGetCertificateChain 和 CertVerifyCertificateChainPolicy 函式。
語法
long WinVerifyTrustEx(
[in] HWND hwnd,
[in] GUID *pgActionID,
[in] WINTRUST_DATA *pWinTrustData
);
參數
[in] hwnd
呼叫端視窗的選擇性控制碼。 信任提供者可以使用此值來判斷它是否可以與使用者互動。 不過,信任提供者通常會在不需要使用者輸入的情況下執行驗證動作。
此參數可以是下列其中一個值。
| 價值觀 | Meaning |
|---|---|
|
沒有互動式使用者。 信任提供者會在沒有使用者協助的情況下執行驗證動作。 |
|
信任提供者可以使用互動式桌面來顯示其使用者介面。 |
|
信任提供者可以將 INVALID_HANDLE_VALUE 或零以外的任何值視為可用來與使用者互動的有效視窗句柄。 |
[in] pgActionID
識別動作的 GUID 結構指標,以及支援該動作的 信任提供者 。 此值指出要在 pWinTrustData 所指向的結構上執行的驗證動作類型。
WinTrust 服務旨在與第三方實施的信任提供者合作。 每個信任提供者都會提供自己唯一的動作識別碼集。 如需信任提供者所支援之動作識別碼的相關資訊,請參閱該信任提供者的文件。
例如,Microsoft 提供軟體發行者信任提供者,可建立從因特網或其他公用網路下載之軟體的可信度。 軟體發行者信任提供者支援下列動作識別碼。 這些常數在 Softpub.h 中定義。
| 價值觀 | Meaning |
|---|---|
|
確認 Windows 硬體品質實驗室 (WHQL) 簽署驅動程式的真實性。 這是 Authenticode 附加元件原則提供者。 |
|
驗證 WinINet 所建立的 SSL/TLS 連線。 |
|
不支援此動作 ID。 使用 Microsoft Office Authenticode 附加元件原則提供者來驗證結構化儲存體檔案的真實性。
Windows Server 2003 和 Windows XP: 支援此動作 ID。 |
|
僅驗證憑證鏈結。 這只有在 WinVerifyTrust 輸入結構中傳入憑證內容時才有效。
便條 我們不建議使用此功能來執行憑證驗證。 若要執行憑證驗證,請使用 CertGetCertificateChain 和 CertVerifyCertificateChainPolicy 函式。
|
|
驗證從任何物件類型建立的憑證鏈結。 提供回呼,以使用每個簽署者和副簽署者的鏈結內容來實作最終鏈結原則。 |
|
使用 Authenticode 原則提供者驗證檔案或物件。 |
|
呼叫 Authenticode 原則提供者之後,將 CRYPT_PROVIDER_DATA 結構寫入檔案。 |
[in] pWinTrustData
WINTRUST_DATA結構的指標,其中包含信任提供者處理指定動作識別碼所需的資訊。 一般而言,結構包含識別信任提供者必須評估之物件的資訊。
結構的格式取決於動作識別碼。 如需特定動作識別碼所需資料的相關資訊,請參閱支援該動作之信任提供者的文件。
傳回值
請注意,雖然傳回類型宣告為 HRESULT ,但此 API 會傳回 Win32 錯誤碼,但請勿使用 SUCCEEDED() 或 FAILED() 來測試結果。
如果信任提供者驗證指定動作的主體是否受信任,則傳回值為ERROR_SUCCESS。 否則,函式會從 信任提供者傳回狀態碼。
例如,信任提供者可能會指出主體不受信任,或受信任但有限制或警告。 傳回值可以是個別信任提供者文件中所述的信任提供者特定值,也可以是下列其中一個錯誤碼。
| 傳回碼 | Description |
|---|---|
|
主體未通過指定的驗證動作。 大部分的信任提供者都會傳回更詳細的錯誤碼,以描述失敗的原因。
便條
根據 HKLM\Software\Microsoft\Cryptography\Wintrust\Config 底下的 EnableCertPaddingCheck 登錄機碼值,可能會傳回TRUST_E_SUBJECT_NOT_TRUSTED傳回碼。如果 EnableCertPaddingCheck 設定為 “1”,則會執行額外的檢查,以確認WIN_CERTIFICATE結構不包含無關資訊。 檢查會驗證 PKCS #7 結構之外沒有非零資料。 如需詳細資訊,請參閱下列安全公告: http://technet.microsoft.com/security/advisory/2915720#section1。 |
|
此系統無法辨識信任提供者。 |
|
信任提供者不支援指定的動作。 |
|
信任提供者不支援為主體指定的表單。 |
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | wintrust.h |
| Library | Wintrust.lib 網站 |
| DLL檔案 | Wintrust.dll |