функция обратного вызова PFN_CERT_DLL_OPEN_STORE_PROV_FUNC (wincrypt.h)

Функция CertDllOpenStoreProv реализуется поставщиком магазина и используется для открытия магазина. Эта функция вызывается функцией CertOpenStore .

Примечание Первые пять параметров идентичны соответствующим параметрам в CertOpenStore.
 

Синтаксис

PFN_CERT_DLL_OPEN_STORE_PROV_FUNC PfnCertDllOpenStoreProvFunc;

BOOL PfnCertDllOpenStoreProvFunc(
  [in]      LPCSTR lpszStoreProvider,
  [in]      DWORD dwEncodingType,
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD dwFlags,
  [in]      const void *pvPara,
  [in]      HCERTSTORE hCertStore,
  [in, out] PCERT_STORE_PROV_INFO pStoreProvInfo
)
{...}

Параметры

[in] lpszStoreProvider

Указатель на строку ANSI, завершающуюся нулевым значением, которая содержит тип поставщика хранилища.

Следующие значения представляют предопределенные типы хранилищ. Тип поставщика хранилища определяет содержимое параметра pvPara , а также использование и значение слова high параметра dwFlags . Дополнительные поставщики хранилища можно установить или зарегистрировать с помощью функции CryptInstallOIDFunctionAddress или CryptRegisterOIDFunction . Дополнительные сведения о добавлении поставщиков хранилища см. в разделе Расширение функциональных возможностей CertOpenStore.

Идентификатор поставщика Описание Содержимое pvPara
CERT_STORE_PROV_MEMORY

sz_CERT_STORE_PROV_MEMORY

Создает хранилище сертификатов в кэше памяти. Сертификаты, списки отзыва сертификатов (CRL) или списки доверия сертификатов (CCL) изначально не загружаются в хранилище. Обычно используется для создания временного хранилища.

Любое добавление сертификатов, списков отзыва сертификатов или списков CCL, а также изменения в свойствах сертификатов, списков отзыва сертификатов или списков CCL в хранилище памяти не сохраняются автоматически. Их можно сохранить в файл или большой двоичный объект памяти с помощью CertSaveStore.

Не используется.
CERT_STORE_PROV_FILE Инициализирует хранилище сертификатами, списками отзыва сертификатов и списков сертификатов, считываемыми из указанного открытого файла. Этот поставщик ожидает, что файл будет содержать только сериализованное хранилище, а не подписанные PKCS #7 сообщения или один закодированный сертификат.

Указатель на файл должен располагаться в начале сведений о сериализованном хранилище. После загрузки данных из сериализованного хранилища в хранилище сертификатов указатель на файл размещается в начале всех данных, которые могут следовать за данными сериализованного хранилища в файле. Если CERT_FILE_STORE_COMMIT_ENABLE задано в dwFlags, дескриптор файла дублируется, а хранилище всегда фиксируется как сериализованное хранилище. Файл не закрывается при закрытии хранилища.

Указатель на дескриптор файла, открытого с помощью CreateFile.
CERT_STORE_PROV_FILENAME_A Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из файла. Поставщик открывает файл и сначала пытается прочитать файл как сериализованное хранилище, затем как сообщение с подписью PKCS #7 и, наконец, в виде одного закодированного сертификата.

Параметр dwEncodingType должен содержать типы кодирования, используемые как с сообщениями, так и с сертификатами. Если файл содержит сертификат в кодировке X.509 , операция открытия завершается ошибкой GetLastError и возвращает ERROR_ACCESS_DENIED. Если флаг CERT_FILE_STORE_COMMIT_ENABLE задан в dwFlags, то значение dwCreationDisposition , передаваемое в CreateFile, выглядит следующим образом:

  • Если установлен флаг CERT_STORE_CREATE_NEW_FLAG, CreateFile использует CREATE_NEW.
  • Если установлен флаг CERT_STORE_OPEN_EXISTING_FLAG, CreateFile использует OPEN_EXISTING.
  • Для всех остальных параметров dwFlagsCreateFile использует OPEN_ALWAYS.

Если dwFlags содержит CERT_FILE_STORE_COMMIT_ENABLE, файл фиксируется как PKCS #7 или сериализованное хранилище в зависимости от типа открытого файла. Если файл пуст или имя файла имеет расширение P7C или SPC, файл фиксируется как PKCS #7. В противном случае файл фиксируется как сериализованное хранилище.

Указатель на строку ANSI, завершающуюся null, которая содержит имя существующего неоткрытого файла.
CERT_STORE_PROV_FILENAME

CERT_STORE_PROV_FILENAME_W

sz_CERT_STORE_PROV_FILENAME

sz_CERT_STORE_PROV_FILENAME_W

То же, что и CERT_STORE_PROV_FILENAME_A. Указатель на строку Юникода, завершающуюся null, которая содержит имя существующего неоткрытого файла.
CERT_STORE_PROV_COLLECTION

sz_CERT_STORE_PROV_COLLECTION

Открывает магазин, который будет коллекцией других магазинов. Магазины добавляются в коллекцию или удаляются из нее с помощью CertAddStoreToCollection и CertRemoveStoreFromCollection. При добавлении хранилища в коллекцию все сертификаты, списки отзыва сертификатов и списки сертификатов в этом хранилище становятся доступными для поиска или перечисления хранилища коллекций.

Высокое слово dwFlags равно нулю.

Должно иметь значение NULL.
CERT_STORE_PROV_REG Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из подраздела реестра.

Этот поставщик открывает или создает подразделы реестра Certificates, CRL и CTLs в разделе, переданном в pvPara. Входной ключ не закрывается поставщиком. Перед возвратом поставщик открывает собственную копию ключа, переданного в pvPara. Если CERT_STORE_READONLY_FLAG задано в нижнем слове dwFlags, подразделы реестра открываются с помощью RegOpenKey с KEY_READ_ACCESS. В противном случае подразделы реестра создаются с помощью RegCreateKey с KEY_ALL_ACCESS. Любые изменения содержимого открытого хранилища немедленно сохраняются в реестре. Однако если CERT_STORE_READONLY_FLAG задано в нижнем слове dwFlags, любая попытка добавить к содержимому хранилища или изменить свойство контекста приведет к ошибке с getLastError , возвращающей код E_ACCESSDENIED.

Дескриптор открытого раздела реестра.
CERT_STORE_PROV_SYSTEM_A Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из указанного системного хранилища.

Системное хранилище — это логическое хранилище коллекций, состоящее из одного или нескольких физических хранилищ. Физическое хранилище, связанное с системным хранилищем, регистрируется с помощью функции CertRegisterPhysicalStore . После открытия системного хранилища все связанные с ним физические хранилища также открываются с помощью вызовов CertOpenStore и добавляются в коллекцию системного хранилища с помощью функции CertAddStoreToCollection . Высокое слово dwFlags указывает расположение системного хранилища, обычно для CERT_SYSTEM_STORE_CURRENT_USER. Дополнительные сведения о расположениях реестра см. в разделах dwFlags далее в этом разделе и Расположения системного хранилища. Некоторые расположения системных хранилищ можно открыть удаленно; Дополнительные сведения см. в разделе Расположения системных магазинов.

Указатель на строку ANSI, завершающуюся null, которая содержит имя системного хранилища, например My или Root.
CERT_STORE_PROV_SYSTEM

CERT_STORE_PROV_SYSTEM_W

sz_CERT_STORE_PROV_SYSTEM

sz_CERT_STORE_PROV_SYSTEM_W

То же, что и CERT_STORE_PROV_SYSTEM_A. Указатель на строку Юникода, завершающуюся null, которая содержит имя системного хранилища, например My или Root.
CERT_STORE_PROV_SYSTEM_REGISTRY_A Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из физического хранилища реестра. Физическое хранилище не открывается как хранилище коллекций. Перечисления и поиск проходят только сертификаты, списки отзыва сертификатов и списки сертификатов в этом физическом хранилище.

Высокое слово dwFlags указывает расположение системного хранилища, обычно для CERT_SYSTEM_STORE_CURRENT_USER. Дополнительные сведения см. в разделе dwFlags далее в этом разделе. Некоторые расположения системных хранилищ можно открыть удаленно; Дополнительные сведения см. в разделе Расположения системных магазинов.

Указатель на строку ANSI, завершающуюся null, которая содержит имя системного хранилища, например My или Root.
CERT_STORE_PROV_SYSTEM_REGISTRY

CERT_STORE_PROV_SYSTEM_REGISTRY_W

sz_CERT_STORE_PROV_SYSTEM_REGISTRY

sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W

То же, что и CERT_STORE_PROV_SYSTEM_REGISTRY_A. Указатель на строку Юникода, завершающуюся null, которая содержит имя системного хранилища, например My или Root.
CERT_STORE_PROV_PHYSICAL

CERT_STORE_PROV_PHYSICAL_W

sz_CERT_STORE_PROV_PHYSICAL

sz_CERT_STORE_PROV_PHYSICAL_W

Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из указанного физического хранилища, являющегося членом хранилища логической системы.

Два имени разделяются промежуточной обратной косой чертой (\), например Root.LocalMachine. Здесь "Root" — это имя системного хранилища и ". LocalMachine" — это имя физического хранилища. Имена системных и физических хранилищ не могут содержать обратные косые символы. Высокое слово dwFlags указывает расположение системного хранилища, как правило, CERT_SYSTEM_STORE_CURRENT_USER. Дополнительные сведения см. в разделе dwFlags далее в этом разделе. Некоторые расположения физических хранилищ можно открыть удаленно.

Указатель на строку Юникода, завершающуюся null, которая содержит как имя системного хранилища, так и физические имена.
CERT_STORE_PROV_MSG Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из указанного криптографического сообщения. Параметр dwEncodingType должен содержать типы кодирования, используемые как с сообщениями, так и с сертификатами. Дескриптор HCRYPTMSG закодированного сообщения, возвращаемый вызовом CryptMsgOpenToDecode.
CERT_STORE_PROV_PKCS7

sz_CERT_STORE_PROV_PKCS7

Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из закодированного подписанного сообщения PKCS #7. Параметр dwEncodingType должен указывать типы кодирования, которые будут использоваться как с сообщениями, так и с сертификатами. Указатель на структуру CRYPT_DATA_BLOB , представляющую закодированное сообщение.
CERT_STORE_PROV_SERIALIZED

sz_CERT_STORE_PROV_SERIALIZED

Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков сертификатов из расположения памяти, содержащего сериализованное хранилище. Указатель на структуру CRYPT_DATA_BLOB , содержащую сериализованный BLOB-объект памяти.
CERT_STORE_PROV_LDAP

CERT_STORE_PROV_LDAP_W

sz_CERT_STORE_PROV_LDAP

sz_CERT_STORE_PROV_LDAP_W

Инициализирует хранилище с помощью сертификатов, списков отзыва сертификатов и списков CCL из результатов запроса LDAP.

Для выполнения операций записи в хранилище в строке запроса должен быть указан базовый запрос без фильтра и одного атрибута.

Если параметр dwFlags содержит флаг CERT_LDAP_STORE_OPENED_FLAG , это адрес структуры CERT_LDAP_STORE_OPENED_PARA , указывающей установленный сеанс LDAP для использования.

В противном случае это указатель на строку Юникода, завершающуюся null, которая содержит строку запроса LDAP. Дополнительные сведения о строках запроса LDAP см. в разделе Диалект LDAP.

CERT_STORE_PROV_SMART_CARD

CERT_STORE_PROV_SMART_CARD_W

sz_CERT_STORE_PROV_SMART_CARD

sz_CERT_STORE_PROV_SMART_CARD_W

В настоящий момент не используется.  

[in] dwEncodingType

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

Этот параметр применим, только если тип поставщика CERT_STORE_PROV_MSG, CERT_STORE_PROV_PKCS7 или CERT_STORE_PROV_FILENAME указан в параметре lpszStoreProvider . Для всех остальных типов поставщиков этот параметр не используется и должен иметь нулевое значение.

Этот параметр может быть сочетанием одного или нескольких из следующих значений.

Значение Значение
PKCS_7_ASN_ENCODING
65536 (0x10000)
Задает кодировку сообщений PKCS #7.
X509_ASN_ENCODING
1 (0x1)
Задает кодировку сертификата X.509.

[in] hCryptProv

Дескриптор для поставщика шифрования. Этот параметр может принимать значение NULL.

[in] dwFlags

Эти значения состоят из значений высокого и нижнего слов, объединенных с помощью побитовой операции ИЛИ .

Часть dwFlags с низким уровнем слов управляет различными общими характеристиками открытого хранилища сертификатов . Эту часть можно использовать со всеми типами поставщиков хранилищ. Часть dwFlags с низкими словами может быть одним из следующих значений.

Значение Значение
CERT_STORE_CREATE_NEW_FLAG
Создайте новое хранилище, если оно не существует. Эта функция должна завершиться ошибкой, если хранилище уже существует.

Если ни CERT_STORE_OPEN_EXISTING_FLAG , ни CERT_STORE_CREATE_NEW_FLAG не заданы, откройте существующее хранилище или создайте и откройте хранилище, если оно еще не существует.

CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG
Отложите закрытие поставщика хранилища до тех пор, пока не будут использоваться все сертификаты, списки отзыва сертификатов или списки сертификатов, полученные из хранилища. Хранилище фактически закрывается при освобождении последнего сертификата, списка отзыва сертификатов или CTL, полученных из хранилища. Все изменения, внесенные в свойства этих сертификатов, списков отзыва сертификатов и списков сертификатов, даже после вызова этой функции, должны сохраняться.

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

Если эта функция вызывается с CERT_CLOSE_STORE_FORCE_FLAG, CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG следует игнорировать.

Если этот флаг установлен и передается значение HCRYPTPROV, отличное от NULL, этот поставщик будет использоваться даже после вызова этой функции.

CERT_STORE_DELETE_FLAG
Хранилище удаляется, а не открывается. Эта функция возвращает значение FALSE как для успешного, так и для неудачного удаления. Чтобы указать на успешное удаление, вызовите Метод SetLastError с нулевым значением. Чтобы указать на сбой удаления, вызовите Метод SetLastError с соответствующим кодом ошибки.
CERT_STORE_ENUM_ARCHIVED_FLAG
Как правило, перечисление всех сертификатов в хранилище игнорирует любой сертификат с заданным свойством CERT_ARCHIVED_PROP_ID . Если этот флаг установлен, перечисление сертификатов в хранилище будет содержать все сертификаты в хранилище, включая сертификаты со свойством CERT_ARCHIVED_PROP_ID .
CERT_STORE_MAXIMUM_ALLOWED
Откройте хранилище с максимальным набором разрешений. Если этот флаг указан, хранилища реестра сначала открываются с доступом на запись, а в случае сбоя снова открываются с доступом только для чтения.
CERT_STORE_NO_CRYPT_RELEASE_FLAG
Этот флаг не используется, если параметр hCryptProv имеет значение NULL. Этот флаг действителен, только если в качестве параметра hCryptProv передается дескриптор CSP, отличный от NULL. Установка этого флага предотвращает автоматическое освобождение поставщика служб CSP, отличного от используемого по умолчанию, при закрытии хранилища сертификатов.
CERT_STORE_OPEN_EXISTING_FLAG
Откройте только существующее хранилище. Если хранилище не существует, функция завершается сбоем.
CERT_STORE_READONLY_FLAG
Откройте хранилище в режиме только для чтения. Любая попытка изменить содержимое хранилища приведет к ошибке. Если этот флаг установлен и используется поставщик хранилища на основе реестра, подразделы реестра открываются с помощью RegOpenKey с KEY_READ_ACCESS. В противном случае подразделы реестра создаются с помощью regCreateKey с KEY_ALL_ACCESS.
CERT_STORE_SET_LOCALIZED_NAME_FLAG
Если этот флаг поддерживается, поставщик задает свойство CERT_STORE_LOCALIZED_NAME_PROP_ID хранилища. Локализованное имя можно получить, вызвав функцию CertGetStoreProperty с параметром dwPropID , для которого задано значение CERT_STORE_LOCALIZED_NAME_PROP_ID. Этот флаг поддерживается для поставщиков типов CERT_STORE_PROV_FILENAME, CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_SYSTEM_REGISTRY и CERT_STORE_PROV_PHYSICAL_W.
CERT_STORE_SHARE_CONTEXT_FLAG
При открытии хранилища несколько раз можно установить этот флаг, чтобы обеспечить эффективное использование памяти, повторно используя память для закодированных частей сертификата, списка отзыва сертификатов или контекста CTL в открытых экземплярах хранилищ.
CERT_STORE_UPDATE_KEYID_FLAG
Списки идентификаторов ключей существуют в CurrentUser и LocalMachine. Эти идентификаторы ключей имеют свойства, подобные свойствам сертификатов. Если задано CERT_STORE_UPDATE_KEYID_FLAG , то для каждого идентификатора ключа в расположении хранилища со свойством CERT_KEY_PROV_INFO_PROP_ID это свойство автоматически обновляется из свойства идентификатора ключа CERT_KEY_PROV_INFO_PROP_ID или CERT_KEY_IDENTIFIER_PROP_ID сертификата, связанного с этим идентификатором ключа.
CERT_STORE_BACKUP_RESTORE_FLAG
Используйте права SE_BACKUP_NAME потока и SE_RESTORE_NAME для открытия хранилищ реестра или файловой системы. Если у потока нет этих привилегий, эта функция должна завершиться ошибкой отказа в доступе.
 

Типы поставщиков CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_SYSTEM_REGISTRY и CERT_STORE_PROV_PHYSICAL используют следующие высокие слова dwFlags для указания расположений реестра системного хранилища:

CERT_SYSTEM_STORE_CURRENT_SERVICE

CERT_SYSTEM_STORE_CURRENT_USER

CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY

CERT_SYSTEM_STORE_LOCAL_MACHINE

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY

CERT_SYSTEM_STORE_SERVICES

CERT_SYSTEM_STORE_USERS

По умолчанию системное хранилище открывается относительно HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE или HKEY_USERS предопределенного раздела реестра. Дополнительные сведения см. в разделе Расположения системных магазинов.

Следующие флаги высокого уровня слов переопределяют это поведение по умолчанию.

Значение Значение
CERT_SYSTEM_STORE_RELOCATE_FLAG
Если параметр задан, pvPara должен содержать указатель на CERT_SYSTEM_STORE_RELOCATE_PARA структуру, а не строку. Структура указывает как имя хранилища, так и его расположение в реестре.
CERT_SYSTEM_STORE_UNPROTECTED_FLAG
По умолчанию при открытии корневого хранилища CurrentUser все корневые элементы SystemRegistry, не храняся в защищенном корневом списке, удаляются из кэша до возврата этой функции. Если этот флаг установлен, значение по умолчанию переопределяется, возвращаются все корневые данные в SystemRegistry, а проверка защищенного корневого списка не выполняется.
 

Поставщик CERT_STORE_PROV_REGISTRY использует следующие флаги высокого уровня.

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

Этот флаг в основном используется для хранилищ, скачанных из шаблона групповой политики (GPT), таких как хранилища CurrentUserGroupPolicy и LocalMachineGroupPolicy.

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

CERT_REGISTRY_STORE_REMOTE_FLAG
pvPara содержит дескриптор раздела реестра на удаленном компьютере. Чтобы получить доступ к разделу реестра на удаленном компьютере, необходимо задать разрешения безопасности на удаленном компьютере, чтобы разрешить доступ. Дополнительные сведения см. в подразделе "Примечания".
 

Типы поставщиков CERT_STORE_PROV_FILE и CERT_STORE_PROV_FILENAME используют следующие флаги высокого уровня.

Значение Значение
CERT_FILE_STORE_COMMIT_ENABLE
Установка этого флага фиксирует любые добавления в хранилище или любые изменения, внесенные в свойства контекстов в хранилище файлов при вызове CertCloseStore или при вызове CertControlStore с CERT_STORE_CONTROL_COMMIT.

CertOpenStore завершается сбоем с E_INVALIDARG, если CERT_FILE_STORE_COMMIT_ENABLE и CERT_STORE_READONLY_FLAG заданы в dwFlags.

 

Тип поставщика CERT_STORE_PROV_LDAP использует следующие флаги высокого слова.

Значение Значение
CERT_LDAP_STORE_SIGN_FLAG
Чтобы обеспечить целостность, необходимую для некоторых приложений, цифровой подписывая весь трафик LDAP на сервер LDAP и с сервера LDAP с помощью протокола проверки подлинности Kerberos.
CERT_LDAP_STORE_OPENED_FLAG
Используйте этот флаг для использования существующего сеанса LDAP. Если этот флаг указан, параметр pvPara — это адрес структуры CERT_LDAP_STORE_OPENED_PARA , содержащей сведения о сеансе LDAP для использования.
CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG
Выполняет поиск DNS только для записи A по URL-адресу в параметре pvPara . Это предотвращает создание ложных запросов DNS при разрешении имен узлов URL-адресов. Используйте этот флаг при передаче имени узла в отличие от доменного имени для параметра pvPara .
CERT_LDAP_STORE_UNBIND_FLAG
Используйте этот флаг с флагом CERT_LDAP_STORE_OPENED_FLAG , чтобы сеанс LDAP был отключен при закрытии хранилища. Система отменит привязку сеанса LDAP с помощью функции ldap_unbind при закрытии хранилища.

[in] pvPara

32-разрядное значение, которое может содержать дополнительные сведения для этой функции. Содержимое этого параметра зависит от значения lpszStoreProvider и других параметров.

[in] hCertStore

Дескриптор хранилища в памяти, который был открыт и может использоваться для вызовов других вызовов API, связанных с магазином, таких как CertAddSerializedElementToStore.

[in, out] pStoreProvInfo

Указатель на обновляемую структуру CERT_STORE_PROV_INFO . Структура данных была обнуляема, а cbSize задана перед вызовом.

Элемент cStoreProvFunc структуры CERT_STORE_PROV_INFO — это количество реализованных функций обратного вызова, которые должны быть заданы последним. После установки cStoreProvFunc все последующие вызовы хранилища, такие как CertAddEncodedCertificateToStore, будут вызывать соответствующую функцию обратного вызова поставщика.

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

Значение TRUE в случае успешного выполнения; в противном случае — FALSE.

Требования

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

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

CERT_STORE_PROV_INFO

Функции обратного вызова

CertAddEncodedCertificateToStore

CertOpenStore