wincrypt.h) (CERT_STORE_PROV_INFO 结构

CERT_STORE_PROV_INFO 结构包含通过使用 打开存储区时已安装的 CertDllOpenStoreProv 函数返回的信息
CertOpenStore 函数。

打开存储区时, CertOpenStore 函数会将 CERT_STORE_PROV_INFO 结构中的所有字段设置为零, cbSize 除外,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) ,并且索引为 0 和 1 为 NULL ,则应为此参数传递数字 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 以释放非 null hStoreProvFuncAddr2。 这允许回调调用另一个可安装函数,该函数将在存储关闭时释放。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 wincrypt.h