CertAddCTLContextToStore 函式 (wincrypt.h)
CertAddCTLContextToStore 函式會將憑證信任清單 (CTL) 內容新增至證書存儲。
語法
BOOL CertAddCTLContextToStore(
[in] HCERTSTORE hCertStore,
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCTL_CONTEXT *ppStoreContext
);
參數
[in] hCertStore
證書存儲的句柄。
[in] pCtlContext
要加入至存放區 之CTL_CONTEXT 結構的指標。
[in] dwAddDisposition
指定在存放區中已經存在相符 CTL 或相符 CTL 連結時,要採取的動作。 目前定義的處置值及其用途如下。
值 | 意義 |
---|---|
|
不檢查現有的相符 CTL 或與相符 CTL 的連結。 新的 CTL 一律會新增至存放區。 這可能會導致存放區中的重複專案。 |
|
如果相符的 CTL 或相符 CTL 的連結存在,作業就會失敗。 GetLastError 會傳回CRYPT_E_EXISTS程序代碼。 |
|
如果相符的 CTL 或相符 CTL 的連結存在,則會比較 CTL 上的 ThisUpdate 時間。 如果現有的 CTL 的 ThisUpdate 時間小於新 CTL 上的 ThisUpdate 時間,舊的 CTL 或連結會取代為與CERT_STORE_ADD_REPLACE_EXISTING相同。 如果現有的 CTL 的 ThisUpdate 時間大於或等於要新增之 CTL 上的 ThisUpdate 時間,則函式會失敗,並傳回CRYPT_E_EXISTS程式代碼的 GetLastError 。
如果在存放區中找不到相符 CTL 或相符 CTL 的連結,則會將新的 CTL 新增至存放區。 |
|
動作與CERT_STORE_ADD_NEWER相同,不同之處在於,如果取代較舊的 CTL,則會將較舊 CTL 的屬性併入取代 CTL 中。 |
|
如果相符的 CTL 或相符 CTL 的連結存在,則會刪除現有的 CTL 或連結,並建立新的 CTL 並新增至存放區。 如果相符的 CTL 或相符 CTL 的連結不存在,則會新增一個。 |
|
如果存放區中有相符的 CTL,則會先刪除現有的內容,再建立和新增內容。 新增的內容會繼承現有 CTL 的屬性。 |
|
如果有相符的 CTL 或相符 CTL 的連結存在,則會使用現有的 CTL,並新增來自新 CTL 的屬性。 函式不會失敗,但不會新增任何新的 CTL。 如果 ppCertContext 不是 NULL,則會複製現有的內容。
如果相符的 CTL 或相符 CTL 的連結不存在,則會新增新的 CTL。 |
[out, optional] ppStoreContext
已譯碼 CTL 內容的指標指標。 這個選擇性參數可以是 NULL ,表示呼叫的應用程式不需要新增或現有 CTL 的複本。 如果建立複本,則必須使用 CertFreeCTLContext 釋放該內容。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,傳回值為 FALSE。 來自所呼叫函式 CertAddEncodedCRLToStore 和 CertSetCRLContextProperty 的錯誤可以傳播至此函式。
如需擴充的錯誤資訊,請呼叫 GetLastError。 接下來有一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
如果已設定CERT_STORE_ADD_NEW且 CTL 存在於存放區中,或已設定 CERT_STORE_ADD_NEWER,且儲存區中有 CTL,且此存放區中有大於或等於要新增之 CTL 的 ThisUpdate 日期,就會傳回此錯誤。 |
|
dwAddDisposition 參數指定了無效的新增配置。 |
備註
CTL 內容不會使用 CertDuplicateCTLContext 重複。 相反地,會建立新的複本並新增至存放區。 除了編碼的 CTL 之外,還會複製內容的屬性。
若要從證書存儲中移除 CTL 內容,請使用 CertDeleteCTLFromStore 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |