CryptGetOIDFunctionValue 函数 (wincrypt.h)

CryptGetOIDFunctionValue 函数查询与 OID 关联的值。 查询是针对与 OID、函数名称和编码类型关联的特定命名值进行的。 函数可以返回查询值的类型、值本身或两者。

语法

BOOL CryptGetOIDFunctionValue(
  [in]      DWORD   dwEncodingType,
  [in]      LPCSTR  pszFuncName,
  [in]      LPCSTR  pszOID,
  [in]      LPCWSTR pwszValueName,
  [out]     DWORD   *pdwValueType,
  [out]     BYTE    *pbValueData,
  [in, out] DWORD   *pcbValueData
);

参数

[in] dwEncodingType

指定要匹配的编码类型。 目前,仅使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING:但是,将来可能会添加其他编码类型。 若要匹配当前两种编码类型,请使用 X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。

[in] pszFuncName

指向包含 OID 函数集名称的以 null 结尾的字符串的指针。

[in] pszOID

如果 OID 的高阶字非零, 则 pszOID 是指向以 null 结尾的 OID 字符串(例如“2.5.29.1”)或以 null 结尾的 ASCII 字符串(如“file”)的指针。如果 OID 的高序字为零,则低序字将指定要用作对象标识符的数字标识符。

[in] pwszValueName

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要查询的值的名称。

[out] pdwValueType

指向变量的指针,用于接收值的类型。 通过此参数返回的类型将是以下类型之一。

含义
REG_DWORD
32 位数字。
REG_EXPAND_SZ
一个 Unicode 字符串,包含对环境变量(例如“%PATH%”)的未扩展引用。 应用程序应确保字符串在使用前具有终止 null 字符。 有关字符串何时没有终止 null 字符的详细信息,请参阅 RegQueryValueEx
REG_MULTI_SZ
以 null 结尾的 Unicode 字符串的数组。 应用程序应确保数组在使用前正确终止两个 null 字符。 有关数组何时未以两个 null 字符结尾的详细信息,请参阅 RegQueryValueEx
REG_SZ
一个 Unicode 字符串。 应用程序应确保字符串在使用前具有终止 null 字符。 有关字符串何时没有终止 null 字符的详细信息,请参阅 RegQueryValueEx
 

如果不需要返回的类型, 则 pdwValueType 参数可以为 NULL

[out] pbValueData

指向缓冲区的指针,用于接收与 pwszValueName 参数关联的值。 缓冲区必须足够大,才能包含终止 NULL 字符。 如果不需要返回的数据,此参数可以为 NULL

此参数也可以为 NULL ,以查找缓冲区的大小,以便进行内存分配。 有关详细信息,请参阅 检索长度未知的数据

[in, out] pcbValueData

指向 DWORD 的指针,指定 pbValueData 指向的缓冲区的大小(以字节为单位)。

在大多数情况下,*印刷品值Data 中返回的值包括字符串中终止 NULL 字符的大小。 有关不包含 NULL 字符的情况的信息,请参阅 RegQueryValueEx 的“备注”部分。

注意 处理缓冲区中返回的数据时,应用程序必须使用返回的数据的实际大小。 实际大小可以略小于输入时指定的缓冲区的大小。 (输入时,缓冲区大小通常指定得足够大,以确保缓冲区中容纳可能的最大输出数据。) 输出时,此参数指向的变量将更新为反映复制到缓冲区的数据的实际大小。
 

返回值

如果函数成功,则函数) 返回非零 (TRUE

如果函数失败,则返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

此函数具有以下错误代码。

说明
ERROR_MORE_DATA
如果 pbValueData 参数指定的缓冲区不够大,无法容纳返回的数据,则函数将设置ERROR_MORE_DATA代码,并将所需的缓冲区大小(以字节为单位)存储到 由ERROR_MORE_DATA ValueData 指向的变量中。

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

OID 支持函数