Функция 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
Указывает действие, которое необходимо выполнить, если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует в хранилище. В настоящее время определенные значения перед ликвидацией и их использование приведены ниже.
Значение | Значение |
---|---|
|
Не проверка для существующего соответствующего списка отзыва сертификатов или ссылки на соответствующий список отзыва сертификатов. В магазин всегда добавляется новая ссылка. Это может привести к дублированию в хранилище. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, операция завершается ошибкой. GetLastError возвращает код CRYPT_E_EXISTS. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, сравнивается время ThisUpdate в списках отзыва сертификатов. Если существующий список отзыва сертификатов имеет значение ThisUpdate меньше времени ThisUpdate в новом списке отзыва сертификатов, старая ссылка заменяется так же, как и CERT_STORE_ADD_REPLACE_EXISTING. Если в существующем списке отзыва сертификатов время ThisUpdate больше или равно времени ThisUpdate для добавляемого списка отзыва сертификатов, функция завершается сбоем с getLastError , возвращающим код CRYPT_E_EXISTS.
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не найдена в магазине, в магазин добавляется новая ссылка. |
|
Если ссылка на соответствующий список отзыва сертификатов существует, существующая ссылка удаляется, а новая ссылка создается и добавляется в хранилище. Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, добавляется новая ссылка. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, используется эта существующая ссылка. Функция не завершается ошибкой, но новая ссылка не добавляется. Если соответствующий список отзыва сертификатов или ссылка на список отзыва сертификатов не существует, добавляется новая ссылка. |
[out, optional] ppStoreContext
Указатель на указатель созданной копии ссылки. Параметр ppStoreContext может иметь значение NULL , чтобы указать, что копия ссылки не требуется. Если создается копия ссылки, ее необходимо освободить с помощью CertFreeCRLContext.
Возвращаемое значение
Если функция выполнена успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Для объекта dwAddDisposition CERT_STORE_ADD_NEW список CTL уже существует в хранилище. |
|
Недопустимое значение перед ликвидацией было указано в параметре 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 |