BCryptQueryContextFunctionProperty 函数 (bcrypt.h)

BCryptQueryContextFunctionProperty 函数获取现有 CNG 上下文中加密函数的命名属性的值。

语法

NTSTATUS BCryptQueryContextFunctionProperty(
  [in]      ULONG   dwTable,
  [in]      LPCWSTR pszContext,
  [in]      ULONG   dwInterface,
  [in]      LPCWSTR pszFunction,
  [in]      LPCWSTR pszProperty,
  [in, out] ULONG   *pcbValue,
  [in, out] PUCHAR  *ppbValue
);

参数

[in] dwTable

标识上下文所在的配置表。 这可以是以下值之一。

含义
CRYPT_LOCAL
上下文存在于本地计算机配置表中。
CRYPT_DOMAIN
此值不可使用。

[in] pszContext

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要从中获取函数属性的上下文的标识符。

[in] dwInterface

标识函数所在的加密接口。 这可以是以下值之一。

含义
BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE
函数存在于非对称加密函数列表中。
BCRYPT_CIPHER_INTERFACE
该函数存在于密码函数列表中。
BCRYPT_HASH_INTERFACE
函数存在于哈希函数列表中。
BCRYPT_RNG_INTERFACE
函数存在于随机数生成器函数列表中。
BCRYPT_SECRET_AGREEMENT_INTERFACE
该函数存在于机密协议函数列表中。
BCRYPT_SIGNATURE_INTERFACE
该函数存在于签名函数列表中。
NCRYPT_KEY_STORAGE_INTERFACE
该函数存在于密钥存储函数列表中。
NCRYPT_SCHANNEL_INTERFACE
函数存在于 Schannel 函数列表中。

[in] pszFunction

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要获取其 属性的加密函数的标识符。

[in] pszProperty

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要获取的属性的标识符。

[in, out] pcbValue

输入时包含 ppbValue 指向的缓冲区的大小(以字节为单位)的 ULONG 变量的地址。 如果此大小不足以保存属性值,则此函数将失败并 出现STATUS_BUFFER_TOO_SMALL

此函数返回后,此变量包含复制到 ppbValue 缓冲区的字节数。

[in, out] ppbValue

指向接收属性数据的缓冲区的指针的地址。 此缓冲区的大小和格式取决于要检索的属性的格式。 由印刷量值参数指向的值包含此缓冲区的大小。

如果此参数指向的值为 NULL,则此函数将分配所需的内存。 当不再需要此内存时,必须通过将此指针传递给 BCryptFreeBuffer 函数来释放此内存。

如果此参数为 NULL,此函数会将所需大小(以字节为单位)放在由STATUS_BUFFER_TOO_SMALL值参数指向的变量中。

返回值

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

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

返回代码 说明
STATUS_SUCCESS
函数成功。
STATUS_BUFFER_TOO_SMALL
ppbValue 参数不为 NULL并且由印刷电路板值参数指向的值不够大,无法容纳上下文集。
STATUS_INVALID_PARAMETER
一个或多个参数无效。
STATUS_NO_MEMORY
内存分配失败。
STATUS_NOT_FOUND
找不到指定的上下文、函数或属性。

注解

BCryptQueryContextFunctionProperty 只能在用户模式下调用。

要求

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