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 函数表:

必须调用 CryptRegisterDefaultOIDFunction 才能在 Windows 注册表中注册提供程序。

要求

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

另请参阅

CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH