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 的链接时要执行的操作。 当前定义的处置值及其用途如下所示。

含义
CERT_STORE_ADD_ALWAYS
不对现有的匹配 CRL 或指向匹配 CRL 的链接检查。 始终会将新链接添加到存储区。 这可能会导致存储中出现重复项。
CERT_STORE_ADD_NEW
如果存在匹配的 CRL 或指向匹配 CRL 的链接,则操作将失败。 GetLastError 返回CRYPT_E_EXISTS代码。
CERT_STORE_ADD_NEWER
如果存在匹配的 CRL 或指向匹配 CRL 的链接,则会比较 CRL 上的 ThisUpdate 时间。 如果现有 CRL 的 ThisUpdate 时间小于新 CRL 上的 ThisUpdate 时间,则会将旧链接替换为 CERT_STORE_ADD_REPLACE_EXISTING。 如果现有 CRL 的 ThisUpdate 时间大于或等于要添加的 CRL 上的 ThisUpdate 时间,则函数将 失败并返回 CRYPT_E_EXISTS代码。

如果在存储中找不到匹配的 CRL 或指向匹配 CRL 的链接,则会将新链接添加到存储中。

CERT_STORE_ADD_REPLACE_EXISTING
如果存在指向匹配 CRL 的链接,则会删除该现有链接,并创建一个新链接并将其添加到存储。 如果匹配的 CRL 或指向匹配 CRL 的链接不存在,则会添加新链接。
CERT_STORE_ADD_USE_EXISTING
如果存在匹配的 CRL 或指向匹配 CRL 的链接,则使用该现有链接。 函数不会失败,但未添加新链接。 如果匹配的 CRL 或 CRL 链接不存在,则会添加新链接。

[out, optional] ppStoreContext

指向所创建链接副本的指针的指针。 ppStoreContext 参数可以为 NULL,以指示不需要链接的副本。 如果创建了链接的副本,则必须使用 CertFreeCRLContext 释放该副本。

返回值

如果函数成功,则返回值为 TRUE

如果函数失败,则返回值为 FALSE。 有关扩展的错误信息,请调用 GetLastError。 一些可能的错误代码随之而来。

返回代码 说明
CRYPT_E_EXISTS
对于 CERT_STORE_ADD_NEW的 dwAddDisposition ,存储中已存在 CTL。
E_INVALIDARG
dwAddDisposition 参数中指定了无效的处置值。

注解

由于链接提供对原始 CRL 上下文的访问,因此在链接的 CRL 上下文中设置扩展属性会更改 CRL 原始位置和该 CRL 的任何其他链接中的扩展属性。

链接不能添加到作为集合打开的存储区。 作为集合打开的存储包括使用 CertOpenSystemStoreCertOpenStore 使用 CERT_STORE_PROV_SYSTEM 或 CERT_STORE_PROV_COLLECTION 打开的所有存储。 有关详细信息,请参阅 CertAddStoreToCollection

如果使用链接并使用 CERT_CLOSE_STORE_FORCE_FLAG调用 CertCloseStore ,则必须关闭使用链接的存储,然后才能关闭包含原始上下文的存储。 如果未使用CERT_CLOSE_STORE_FORCE_FLAG,则可以按任一顺序关闭这两个商店。

若要从证书存储中删除 CRL 上下文链接,请使用 CertDeleteCRLFromStore 函数。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

证书吊销列表函数