структура CERT_STORE_PROV_INFO (wincrypt.h)

Структура CERT_STORE_PROV_INFO содержит сведения, возвращаемые установленной функцией CertDllOpenStoreProv при открытии хранилища с помощью
Функция CertOpenStore .

При открытии хранилища функция CertOpenStore задает для всех полей в структуре CERT_STORE_PROV_INFO нулевое значение, за исключением cbSize, для которого задан размер CERT_STORE_PROV_INFO. Структура обновляется с помощью устанавливаемой функции CertDllOpenStoreProv . Если нет дополнительных функций обратного вызова, cStoreProvFunc остается равным нулю при возврате.

Синтаксис

typedef struct _CERT_STORE_PROV_INFO {
  DWORD             cbSize;
  DWORD             cStoreProvFunc;
  void              **rgpvStoreProvFunc;
  HCERTSTOREPROV    hStoreProv;
  DWORD             dwStoreProvFlags;
  HCRYPTOIDFUNCADDR hStoreProvFuncAddr2;
} CERT_STORE_PROV_INFO, *PCERT_STORE_PROV_INFO;

Члены

cbSize

Содержит размер этой структуры в байтах.

cStoreProvFunc

Содержит количество элементов в массиве rgpvStoreProvFunc . Это число должно включать все значения NULL , которые использовались в индексах до последней реализованной функции обратного вызова. Например, если реализована только одна функция обратного вызова, но она находится с индексом 2 (CERT_STORE_PROV_WRITE_CERT_FUNC) с значением NULL для индексов 0 и 1, то для этого параметра следует передать число 3.

rgpvStoreProvFunc

Массив указателей на функции обратного вызова, реализованные поставщиком. Этот массив индексируется по значениям, приведенным в следующей таблице, и они должны быть в указанном порядке. Также отображается связанная функция обратного вызова. Все функции обратного вызова, которые не реализованы, должны иметь значение NULL. Массив не обязательно должен содержать все индексы функций обратного вызова, он должен содержать только самый высокий реализованный индекс функции обратного вызова. Например, если реализована только функция обратного вызова CERT_STORE_PROV_WRITE_CERT_FUNC (2), массив должен содержать только три элемента.

Значение Значение
CERT_STORE_PROV_CLOSE_FUNC
0 (0x0)

CertStoreProvCloseCallback

CERT_STORE_PROV_READ_CERT_FUNC
1 (0x1)

CertStoreProvReadCertCallback

CERT_STORE_PROV_WRITE_CERT_FUNC
2 (0x2)

CertStoreProvWriteCertCallback

CERT_STORE_PROV_DELETE_CERT_FUNC
3 (0x3)

CertStoreProvDeleteCertCallback

CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC
4 (0x4)

CertStoreProvSetCertPropertyCallback

CERT_STORE_PROV_READ_CRL_FUNC
5 (0x5)

CertStoreProvReadCRLCallback

CERT_STORE_PROV_WRITE_CRL_FUNC
6 (0x6)

CertStoreProvWriteCRLCallback

CERT_STORE_PROV_DELETE_CRL_FUNC
7 (0x7)

CertStoreProvDeleteCRLCallback

CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC
8 (0x8)

CertStoreProvSetCRLPropertyCallback

CERT_STORE_PROV_READ_CTL_FUNC
9 (0x9)

CertStoreProvReadCTL

CERT_STORE_PROV_WRITE_CTL_FUNC
10 (0xA)

CertStoreProvWriteCTL

CERT_STORE_PROV_DELETE_CTL_FUNC
11 (0xB)

CertStoreProvDeleteCTL

CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC
12 (0xC)

CertStoreProvSetCTLProperty

CERT_STORE_PROV_CONTROL_FUNC
13 (0xD)

CertStoreProvControl

CERT_STORE_PROV_FIND_CERT_FUNC
14 (0xE)

CertStoreProvFindCert

CERT_STORE_PROV_FREE_FIND_CERT_FUNC
15 (0xF)

CertStoreProvFreeFindCert

CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC
16 (0x10)

CertStoreProvGetCertProperty

CERT_STORE_PROV_FIND_CRL_FUNC
17 (0x11)

CertStoreProvFindCRL

CERT_STORE_PROV_FREE_FIND_CRL_FUNC
18 (0x12)

CertStoreProvFreeFindCRL

CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC
19 (0x13)

CertStoreProvGetCRLProperty

CERT_STORE_PROV_FIND_CTL_FUNC
20 (0x14)

CertStoreProvFindCTL

CERT_STORE_PROV_FREE_FIND_CTL_FUNC
21 (0x15)

CertStoreProvFreeFindCTL

CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC
22 (0x16)

CertStoreProvGetCTLProperty

hStoreProv

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

dwStoreProvFlags

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

Значение Значение
CERT_STORE_PROV_EXTERNAL_FLAG
1 (0x1)
Поставщик хранит сертификаты, спискиотзыва сертификатов и списки доверия сертификатов , которые являются внешними для кэша хранилища.
CERT_STORE_PROV_DELETED_FLAG
2 (0x2)
Хранилище было успешно удалено. Обратный вызов CertStoreProvCloseCallback не вызывается.
CERT_STORE_PROV_NO_PERSIST_FLAG
4 (0x4)
По умолчанию поставщик сохраняет изменения, внесенные в хранилище. Если этот флаг установлен, поставщик не сохраняет изменения, внесенные в хранилище.
CERT_STORE_PROV_SYSTEM_STORE_FLAG
8 (0x8)
Поставщик сохраняет контексты в системном хранилище.
CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG
16 (0x10)
Поставщик сохраняет контексты в системном хранилище LocalMachine.

hStoreProvFuncAddr2

Содержит дескриптор, возвращенный CryptGetOIDFunctionAddress. CertCloseStore вызывает CryptFreeOIDFunctionAddress для освобождения hStoreProvFuncAddr2, отличного от null. Это позволяет обратному вызову вызывать другую устанавливаемую функцию, которая будет освобождена при закрытии хранилища.

Требования

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