BCryptEnumProviders 函数 (bcrypt.h)

BCryptEnumProviders 函数获取支持指定算法的所有 CNG 提供程序。

语法

NTSTATUS BCryptEnumProviders(
  [in]  LPCWSTR              pszAlgId,
  [out] ULONG                *pImplCount,
  [out] BCRYPT_PROVIDER_NAME **ppImplList,
  [in]  ULONG                dwFlags
);

参数

[in] pszAlgId

指向以 null 结尾的 Unicode 字符串的指针,该字符串标识要为其获取提供程序的算法。 这可以是预定义的 CNG 算法标识符 之一,也可以是另一个算法标识符。

[out] pImplCount

指向 ULONG 变量的指针,用于接收 ppImplList 数组中的元素数。

[out] ppImplList

要接收支持指定算法的提供程序集合的 BCRYPT_PROVIDER_NAME 结构的数组的地址。 pImplCount 参数接收此数组中的元素数。 当不再需要此内存时,必须通过将此指针传递给 BCryptFreeBuffer 函数来释放此内存。

[in] dwFlags

一组标志,用于修改此函数的行为。 当前未定义标志,因此此参数必须为零。

返回值

返回指示函数成功或失败的状态代码。

可能的返回代码包括但不限于以下内容。

返回代码 说明
STATUS_SUCCESS
函数成功。
STATUS_INVALID_PARAMETER
一个或多个参数无效。
STATUS_NO_MEMORY
发生内存分配失败。

注解

可以从用户模式或内核模式调用 BCryptEnumProviders。 内核模式调用方必须在 PASSIVE_LEVELIRQL 处执行。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 bcrypt.h
Library Bcrypt.lib
DLL Bcrypt.dll

另请参阅

BCRYPT_PROVIDER_NAME

BCryptFreeBuffer