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
指向变量的指针,用于接收值的类型。 通过此参数返回的类型将是以下类型之一。
值 | 含义 |
---|---|
|
32 位数字。 |
|
一个 Unicode 字符串,包含对环境变量(例如“%PATH%”)的未扩展引用。 应用程序应确保字符串在使用前具有终止 null 字符。 有关字符串何时没有终止 null 字符的详细信息,请参阅 RegQueryValueEx。 |
|
以 null 结尾的 Unicode 字符串的数组。 应用程序应确保数组在使用前正确终止两个 null 字符。 有关数组何时未以两个 null 字符结尾的详细信息,请参阅 RegQueryValueEx。 |
|
一个 Unicode 字符串。 应用程序应确保字符串在使用前具有终止 null 字符。 有关字符串何时没有终止 null 字符的详细信息,请参阅 RegQueryValueEx。 |
如果不需要返回的类型, 则 pdwValueType 参数可以为 NULL 。
[out] pbValueData
指向缓冲区的指针,用于接收与 pwszValueName 参数关联的值。 缓冲区必须足够大,才能包含终止 NULL 字符。 如果不需要返回的数据,此参数可以为 NULL 。
此参数也可以为 NULL ,以查找缓冲区的大小,以便进行内存分配。 有关详细信息,请参阅 检索长度未知的数据。
[in, out] pcbValueData
指向 DWORD 的指针,指定 pbValueData 指向的缓冲区的大小(以字节为单位)。
在大多数情况下,*印刷品值Data 中返回的值包括字符串中终止 NULL 字符的大小。 有关不包含 NULL 字符的情况的信息,请参阅 RegQueryValueEx 的“备注”部分。
返回值
如果函数成功,则函数) 返回非零 (TRUE 。
如果函数失败,则返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。
此函数具有以下错误代码。
值 | 说明 |
---|---|
|
如果 pbValueData 参数指定的缓冲区不够大,无法容纳返回的数据,则函数将设置ERROR_MORE_DATA代码,并将所需的缓冲区大小(以字节为单位)存储到 由ERROR_MORE_DATA ValueData 指向的变量中。 |
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |