共用方式為


WINTRUST_DATA結構 (wintrust.h)

[WINTRUST_DATA 結構可用於需求一節中指定的操作系統。 後續版本可能會變更或無法使用。

呼叫 WinVerifyTrust 時,會使用 WINTRUST_DATA 結構,將必要的資訊傳遞至 信任提供者

語法

typedef struct _WINTRUST_DATA {
  DWORD                               cbStruct;
  LPVOID                              pPolicyCallbackData;
  LPVOID                              pSIPClientData;
  DWORD                               dwUIChoice;
  DWORD                               fdwRevocationChecks;
  DWORD                               dwUnionChoice;
  union {
#if ...
    WINTRUST_FILE_INFO_                *pFile;
#else
    struct WINTRUST_FILE_INFO_         *pFile;
#endif
#if ...
    WINTRUST_CATALOG_INFO_             *pCatalog;
#else
    struct WINTRUST_CATALOG_INFO_      *pCatalog;
#endif
#if ...
    WINTRUST_BLOB_INFO_                *pBlob;
#else
    struct WINTRUST_BLOB_INFO_         *pBlob;
#endif
#if ...
    WINTRUST_SGNR_INFO_                *pSgnr;
#else
    struct WINTRUST_SGNR_INFO_         *pSgnr;
#endif
#if ...
    WINTRUST_CERT_INFO_                *pCert;
#else
    struct WINTRUST_CERT_INFO_         *pCert;
#endif
#if ...
    WINTRUST_DETACHED_SIG_INFO_        *pDetachedSig;
#else
    struct WINTRUST_DETACHED_SIG_INFO_ *pDetachedSig;
#endif
  };
  DWORD                               dwStateAction;
  HANDLE                              hWVTStateData;
  WCHAR                               *pwszURLReference;
  DWORD                               dwProvFlags;
  DWORD                               dwUIContext;
  struct WINTRUST_SIGNATURE_SETTINGS_ *pSignatureSettings;
} WINTRUST_DATA, *PWINTRUST_DATA;

成員

cbStruct

這個 結構的大小,以位元組為單位。

pPolicyCallbackData

用來將原則特定數據傳遞至原則提供者的數據緩衝區指標。 這個成員可以 NULL

pSIPClientData

數據緩衝區的指標,用來將 主體介面封裝 (SIP)特定數據傳遞至 SIP 提供者。 這個成員可以 NULL

dwUIChoice

指定要使用的使用者介面 (UI) 類型。 這個成員必須是下列其中一個值。

價值 意義
WTD_UI_ALL
1
顯示所有UI。
WTD_UI_NONE
2
不顯示UI。
WTD_UI_NOBAD
3
不要顯示任何負UI。
WTD_UI_NOGOOD
4
不要顯示任何正面UI。

fdwRevocationChecks

憑證撤銷檢查選項。 此成員可以設定為將撤銷檢查新增至選取的原則提供者所完成的撤銷檢查。 這個成員必須是下列其中一個值。

價值 意義
WTD_REVOKE_NONE
0
WTD_REVOKE_NONE 旗標與 winVerifyTrust 函式的 pgActionID 參數中所設定的 HTTPSPROV_ACTION 值搭配使用時,將不會進行額外的撤銷檢查。 為了確保 winVerifyTrust 函式不會在驗證程式代碼簽章時嘗試任何網路擷取,WTD_CACHE_ONLY_URL_RETRIEVAL 必須在 dwProvFlags 參數中設定。
WTD_REVOKE_WHOLECHAIN
1
撤銷檢查將在整個鏈結上完成。

dwUnionChoice

指定要使用的等位成員,因此,將驗證信任的物件類型。 這個成員必須是下列其中一個值。

價值 意義
WTD_CHOICE_FILE
1
使用 pFile所指向的檔案。
WTD_CHOICE_CATALOG
2
使用 pCatalog 指向的目錄
WTD_CHOICE_BLOB
3
使用 pBlob所指向的 BLOB
WTD_CHOICE_SIGNER
4
使用 pSgnr所指向的 [WINTRUST_SGNR_INFO](/windows/desktop/api/wintrust/ns-wintrust-wintrust_sgnr_info) 結構。
WTD_CHOICE_CERT
5
使用 pCert所指向的憑證。

pFile

WINTRUST_FILE_INFO 結構的指標。

pCatalog

WINTRUST_CATALOG_INFO 結構的指標。

pBlob

WINTRUST_BLOB_INFO 結構的指標。

pSgnr

WINTRUST_SGNR_INFO 結構的指標。

pCert

WINTRUST_CERT_INFO 結構的指標。

pDetachedSig

dwStateAction

指定要採取的動作。 這可以是下列其中一個值。

價值 意義
WTD_STATEACTION_IGNORE
0x00000000
忽略 hWVTStateData 成員。
WTD_STATEACTION_VERIFY
0x00000001
確認由 dwUnionChoice 成員所指定的物件信任(通常是檔案)。 hWVTStateData 成員會收到狀態數據的句柄。 必須在後續呼叫中指定 WTD_STATEACTION_CLOSE 動作,以釋放此句柄。
WTD_STATEACTION_CLOSE
0x00000002
釋放先前使用 WTD_STATEACTION_VERIFY 動作配置 hWVTStateData 成員。 此動作必須針對每個 WTD_STATEACTION_VERIFY 動作的用法指定。
WTD_STATEACTION_AUTO_CACHE
0x00000003
將目錄數據寫入 WINTRUST_DATA 結構,然後快取該結構。 只有當 dwUnionChoice 成員包含 WTD_CHOICE_CATALOG時,才會套用此動作。
WTD_STATEACTION_AUTO_CACHE_FLUSH
0x00000004
清除任何快取的目錄數據。 只有當 dwUnionChoice 成員包含 WTD_CHOICE_CATALOG時,才會套用此動作。

hWVTStateData

狀態數據的句柄。 此成員的內容取決於 dwStateAction 成員的值。

pwszURLReference

保留供日後使用。 設定為 NULL

dwProvFlags

指定信任提供者設定的 DWORD 值。 這可以是零個或多個下列值的位元組合。

價值 意義
WTD_USE_IE4_TRUST_FLAG
1 (0x1)
信任的驗證方式與 Internet Explorer 4.0 實作的方式相同。
WTD_NO_IE4_CHAIN_FLAG
2 (0x2)
不會使用 Internet Explorer 4.0 鏈結功能。
WTD_NO_POLICY_USAGE_FLAG
4 (0x4)
不會執行原則提供者的默認驗證,例如 Authenticode的程式代碼簽署,而且會假設憑證適用於所有使用方式。
WTD_REVOCATION_CHECK_NONE
16 (0x10)
不會執行撤銷檢查。
WTD_REVOCATION_CHECK_END_CERT
32 (0x20)
撤銷檢查只會在結束憑證上執行。
WTD_REVOCATION_CHECK_CHAIN
64 (0x40)
撤銷檢查會在整個憑證鏈結上執行。
WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
128 (0x80)
撤銷檢查會在整個憑證鏈結上執行,但不包括跟證書。
WTD_SAFER_FLAG
256 (0x100)
不支援。
WTD_HASH_ONLY_FLAG
512 (0x200)
只會驗證哈希。
WTD_USE_DEFAULT_OSVER_CHECK
1024 (0x400)
會執行預設作業系統版本檢查。 此旗標僅用於驗證目錄簽署的檔案。
WTD_LIFETIME_SIGNING_FLAG
2048 年 (0x800)
如果未設定此旗標,所有時間戳簽章都會永遠視為有效。 設定此旗標會將簽章的有效存留期限制為簽署憑證的存留期。 這可讓時間戳簽章過期。
WTD_CACHE_ONLY_URL_RETRIEVAL
4096 (0x1000)
只使用本機快取進行撤銷檢查。 防止透過網路進行撤銷檢查。

Windows XP:不支援此值。

WTD_DISABLE_MD2_MD4
8192 (0x2000)
停用 MD2 和 MD4 哈希演算法的使用。 如果使用 MD2 或 MD4 簽署檔案,而且已設定此旗標,則會傳回NTE_BAD_ALGID錯誤。
注意 SP1 和更新版本的作業系統在 Windows 7 上支援此旗標。
 
WTD_MOTW
16384 (0x4000)
如果指定此旗標,則會假設正在驗證的檔案已從 Web 下載,且具有 Web 屬性的 Mark。 將強制執行要套用至 Web 檔案標記的原則。
注意 Windows 8.1 和更新版本的作業系統或已安裝 KB2862966 的系統上都支援此旗標。
 

dwUIContext

DWORD 值,指定 WinVerifyTrust 函式的使用者介面內容。 這會導致 [Authenticode] 對話框中的文字符合檔案上所採取的動作。 這可以是下列其中一個值。

價值 意義
WTD_UICONTEXT_EXECUTE
0
呼叫要執行的檔案 WinVerifyTrust 時使用。 這是預設值。
WTD_UICONTEXT_INSTALL
1
針對要安裝的檔案呼叫 WinVerifyTrust 時使用。

pSignatureSettings

WINTRUST_SIGNATURE_SETTINGS 結構的指標。

Windows 7 KB3033929、Windows 8 和 Windows Server 2012:支援此成員開始。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 wintrust.h