CertAddCRLLinkToStore 函式 (wincrypt.h)
CertAddCRLLinkToStore 函式會將存放區中的連結新增至證書吊銷清單, (CRL) 不同存放區的內容。 此函式不會建立並新增CRL的複本,而是將連結新增至原始CRL內容。
語法
BOOL CertAddCRLLinkToStore(
[in] HCERTSTORE hCertStore,
[in] PCCRL_CONTEXT pCrlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCRL_CONTEXT *ppStoreContext
);
參數
[in] hCertStore
要新增連結的證書存儲句柄。
[in] pCrlContext
要連結 之CRL_CONTEXT 結構的指標。
[in] dwAddDisposition
指定在存放區中存在相符 CRL 或相符 CRL 連結時所要採取的動作。 目前定義的處置值及其用途如下。
值 | 意義 |
---|---|
|
不檢查現有的相符 CRL 或符合 CRL 的連結。 新的連結一律會新增至存放區。 這可能會導致存放區中的重複專案。 |
|
如果相符的CRL或相符CRL的連結存在,作業就會失敗。 GetLastError 會傳回CRYPT_E_EXISTS程序代碼。 |
|
如果相符的CRL或相符CRL的連結存在,則會比較CRL上的 ThisUpdate 時間。 如果現有的CRL的 ThisUpdate 時間小於新CRL上的 ThisUpdate 時間,舊連結就會取代為CERT_STORE_ADD_REPLACE_EXISTING。 如果現有CRL的 ThisUpdate 時間大於或等於要新增的CRL上的 ThisUpdate 時間,則函式會失敗,並傳回CRYPT_E_EXISTS程式代碼的 GetLastError 。
如果在存放區中找不到相符 CRL 或相符 CRL 的連結,則會將新的連結新增至存放區。 |
|
如果相符 CRL 的連結存在,則會刪除該現有連結,並建立新的連結並新增至存放區。 如果相符的CRL或相符CRL的連結不存在,則會新增連結。 |
|
如果相符的CRL或相符CRL的連結存在,則會使用現有的連結。 函式不會失敗,但不會新增任何新連結。 如果CRL的相符CRL或連結不存在,則會新增連結。 |
[out, optional] ppStoreContext
所建立連結複本之指標的指標。 ppStoreContext 參數可以是 NULL,表示不需要連結的複本。 如果建立連結的複本,則必須使用 CertFreeCRLContext 釋放該複本。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,則傳回值為 FALSE。 如需擴充錯誤資訊,請呼叫 GetLastError。 以下是一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
對於 CERT_STORE_ADD_NEW 的 dwAddDisposition,CTL 已存在於存放區中。 |
|
dwAddDisposition 參數中指定了無效的處置值。 |
備註
因為連結提供原始 CRL 內容的存取權,所以在連結的 CRL 內容中設定擴充屬性,會變更 CRL 原始位置中的擴充屬性,以及該 CRL 的任何其他連結。
無法將連結新增至開啟為集合的存放區。 以集合形式開啟的存放區包括使用 CERT_STORE_PROV_SYSTEM 或 CERT_STORE_PROV_COLLECTION 以 CertOpenSystemStore 或 CertOpenStore 開啟的所有存放區。 如需詳細資訊,請參閱 CertAddStoreToCollection。
如果使用連結,並使用 CERT_CLOSE_STORE_FORCE_FLAG呼叫 CertCloseStore ,則必須先關閉使用連結的存放區,才能關閉包含原始內容的存放區。 如果未使用CERT_CLOSE_STORE_FORCE_FLAG,則可以依任一順序關閉這兩個商店。
若要從證書存儲中移除CRL內容連結,請使用 CertDeleteCRLFromStore 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |