Функция CertAddCRLLinkToStore (wincrypt.h)

Функция CertAddCRLLinkToStore добавляет ссылку в хранилище в контекст списка отзыва сертификатов (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

Указывает действие, которое необходимо выполнить, если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует в хранилище. В настоящее время определенные значения перед ликвидацией и их использование приведены ниже.

Значение Значение
CERT_STORE_ADD_ALWAYS
Не проверка для существующего соответствующего списка отзыва сертификатов или ссылки на соответствующий список отзыва сертификатов. В магазин всегда добавляется новая ссылка. Это может привести к дублированию в хранилище.
CERT_STORE_ADD_NEW
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, операция завершается ошибкой. GetLastError возвращает код CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, сравнивается время ThisUpdate в списках отзыва сертификатов. Если существующий список отзыва сертификатов имеет значение ThisUpdate меньше времени ThisUpdate в новом списке отзыва сертификатов, старая ссылка заменяется так же, как и CERT_STORE_ADD_REPLACE_EXISTING. Если в существующем списке отзыва сертификатов время ThisUpdate больше или равно времени ThisUpdate для добавляемого списка отзыва сертификатов, функция завершается сбоем с getLastError , возвращающим код CRYPT_E_EXISTS.

Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не найдена в магазине, в магазин добавляется новая ссылка.

CERT_STORE_ADD_REPLACE_EXISTING
Если ссылка на соответствующий список отзыва сертификатов существует, существующая ссылка удаляется, а новая ссылка создается и добавляется в хранилище. Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, добавляется новая ссылка.
CERT_STORE_ADD_USE_EXISTING
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, используется эта существующая ссылка. Функция не завершается ошибкой, но новая ссылка не добавляется. Если соответствующий список отзыва сертификатов или ссылка на список отзыва сертификатов не существует, добавляется новая ссылка.

[out, optional] ppStoreContext

Указатель на указатель созданной копии ссылки. Параметр ppStoreContext может иметь значение NULL , чтобы указать, что копия ссылки не требуется. Если создается копия ссылки, ее необходимо освободить с помощью CertFreeCRLContext.

Возвращаемое значение

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
CRYPT_E_EXISTS
Для объекта dwAddDisposition CERT_STORE_ADD_NEW список CTL уже существует в хранилище.
E_INVALIDARG
Недопустимое значение перед ликвидацией было указано в параметре dwAddDisposition .

Комментарии

Поскольку ссылка предоставляет доступ к исходному контексту списка отзыва сертификатов, установка расширенного свойства в контексте связанного списка отзыва сертификатов изменяет это расширенное свойство в исходном расположении списка отзыва сертификатов и в любых других ссылках на этот список отзыва сертификатов.

Невозможно добавить ссылки в магазин, открытый как коллекция. Магазины, открытые как коллекции, включают все магазины, открытые с помощью CertOpenSystemStore или CertOpenStore с помощью CERT_STORE_PROV_SYSTEM или CERT_STORE_PROV_COLLECTION. Дополнительные сведения см. в разделе CertAddStoreToCollection.

Если используются ссылки и вызывается CertCloseStore с CERT_CLOSE_STORE_FORCE_FLAG, хранилище, использующий ссылки, необходимо закрыть, прежде чем хранилище, содержащее исходные контексты, можно будет закрыть. Если CERT_CLOSE_STORE_FORCE_FLAG не используется, два хранилища можно закрыть в любом порядке.

Чтобы удалить ссылку контекста списка отзыва сертификатов из хранилища сертификатов, используйте функцию CertDeleteCRLFromStore .

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

Функции списка отзыва сертификатов