BCryptResolveProviders 函数 (bcrypt.h)
BCryptResolveProviders 函数获取满足指定条件的所有提供程序的集合。
语法
NTSTATUS BCryptResolveProviders(
[in, optional] LPCWSTR pszContext,
[in, optional] ULONG dwInterface,
[in, optional] LPCWSTR pszFunction,
[in, optional] LPCWSTR pszProvider,
[in] ULONG dwMode,
[in] ULONG dwFlags,
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDER_REFS *ppBuffer
);
参数
[in, optional] pszContext
指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要为其获取提供程序的上下文的标识符。 如果设置为 NULL 或空字符串,则假定默认上下文。
[in, optional] dwInterface
提供程序必须支持的接口的标识符。 这必须是 CNG 接口标识符
[in, optional] pszFunction
指向以 null 结尾的 Unicode 字符串的指针,该字符串包含提供程序必须支持的算法或函数标识符。 这可以是 的标准
[in, optional] pszProvider
指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要检索的提供程序的名称。 如果此参数 NULL,则将包括所有提供程序。
通过此参数,可以指定要在多个提供程序满足其他条件的事件中检索的特定提供程序。
[in] dwMode
指定要检索的提供程序的类型。 这可以是以下值之一。
价值 | 意义 |
---|---|
|
检索用户模式提供程序。 |
|
检索内核模式提供程序。 |
|
检索用户模式和内核模式提供程序。 |
[in] dwFlags
一组标志,用于修改此函数的行为。
这可以是以下一个或多个值的零或组合。
价值 | 意义 |
---|---|
|
此函数将检索每个满足指定条件的提供程序支持的所有函数。 如果未指定此标志,此函数将仅检索满足指定条件的提供程序或提供程序的第一个函数。 |
|
此函数将检索满足指定条件的所有提供程序。 如果未指定此标志,此函数将仅检索第一个符合指定条件的提供程序。 |
[in, out] pcbBuffer
指向 DWORD 值的指针,该值在条目上包含由 ppBuffer 参数指向的缓冲区的大小(以字节为单位)。 退出时,此值接收复制到缓冲区的字节数或缓冲区所需的大小(以字节为单位)。
[in, out] ppBuffer
接收满足指定条件的提供程序集合的 CRYPT_PROVIDER_REFS 指针的地址。
如果此参数 NULL,则此函数将返回 STATUS_SUCCESS 并放置在 参数所指向的值(所需大小(以字节为单位)的所有数据。
如果此参数是 NULL 指针的地址,则此函数将分配所需的内存,使用有关提供程序的信息填充内存,并将指针置于此参数中。 使用此内存后,通过将此指针传递给 BCryptFreeBuffer 函数来释放该内存。
如果此参数是非NULL 指针的地址,则此函数会将提供程序信息复制到此缓冲区中。 参数必须包含整个缓冲区的大小(以字节为单位)。 如果缓冲区不够大,无法容纳所有提供程序信息,此函数将返回 STATUS_BUFFER_TOO_SMALL。
返回值
返回一个状态代码,指示函数的成功或失败。
可能的返回代码包括但不限于以下代码。
返回代码 | 描述 |
---|---|
|
函数成功。 |
|
参数指定的大小不足以容纳所有数据。 |
|
一个或多个参数无效。 |
|
找不到满足所有指定条件的提供程序。 |
言论
BCryptResolveProviders 可以从用户模式或内核模式调用。 内核模式调用方必须在 IRQL
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | bcrypt.h |
库 | Bcrypt.lib |
DLL | Bcrypt.dll |