PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE回调函数 (wincrypt.h)
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE函数初始化提供程序。 必须实现此函数作为自定义提供程序的一部分。
语法
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE PfnCryptObjectLocatorProviderInitialize;
BOOL PfnCryptObjectLocatorProviderInitialize(
[in] PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH pfnFlush,
[in] LPVOID pContext,
[out] DWORD *pdwExpectedObjectCount,
[out] PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE *ppFuncTable,
[out] void **ppPluginContext
)
{...}
参数
[in] pfnFlush
指向PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH函数实现 的 指针。
[in] pContext
指向提供程序定义的对象的指针,该对象包含有关提供程序和对象的信息。
[out] pdwExpectedObjectCount
指定提供程序期望查找的唯一对象数。 此值告知调用方要为存储对象分配多少内存。 将此值设置为零 (0) 指定默认值 10,000 个对象。
[out] ppFuncTable
一个CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE结构,其中包含指向提供程序实现的函数的指针。 表中的指针不能为 NULL。 调用方不会释放此结构。 预计提供程序将返回未在堆上分配的表。
[out] ppPluginContext
指向此提供程序定义的可选缓冲区的指针。 调用方不会修改缓冲区。 提供程序可以使用数据来帮助它确定要执行的操作或维护其他信息。 此值可以设置为 NULL。
返回值
如果函数成功,) 返回非零 (TRUE 。
如果函数失败,则返回零 (FALSE) 并在 SetLastError 函数中指定适当的错误。 大多数错误都是通过 Schannel 不变传递的,但无法保证此行为。 某些错误可能会映射到其他错误。
注解
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE函数目前仅由安全通道 (Schannel) 安全服务提供程序 (SSP) 调用。 如果从 Windows 8 开始,在 AcquireCredentialsHandle 函数的 pszPrincipal 参数中指定安全主体的名称,则加密 API (CAPI) 将在内部调用自定义提供程序。
实现此函数时,请记住使用指向提供程序实现的以下函数的指针填充 CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE 函数表:
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |