CryptGetOIDFunctionAddress 函数 (wincrypt.h)
CryptGetOIDFunctionAddress 函数在已注册和已安装函数的列表中搜索编码类型和对象标识符, (OID) 匹配。 如果找到匹配项,则会根据需要加载包含该函数的 DLL。 如果找到匹配项,则还会返回指向函数地址的指针和指向函数句柄的指针。 函数句柄上的 引用计数 递增。
语法
BOOL CryptGetOIDFunctionAddress(
[in] HCRYPTOIDFUNCSET hFuncSet,
[in] DWORD dwEncodingType,
[in] LPCSTR pszOID,
[in] DWORD dwFlags,
[out] void **ppvFuncAddr,
[out] HCRYPTOIDFUNCADDR *phFuncAddr
);
参数
[in] hFuncSet
以前通过调用 CryptInitOIDFunctionSet 函数获取的函数集句柄。
[in] dwEncodingType
指定要匹配的编码类型。 目前,仅使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;但是,将来可以添加其他编码类型。 若要匹配当前两种编码类型,请使用:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING
对于不使用编码类型的函数,请将此参数设置为零。
[in] pszOID
如果 OID 的高序字非零, 则 pszOID 是指向 OID 字符串(如“2.5.29.1”)或 ASCII 字符串(如“file”)的指针。 如果 OID 的高阶字为零,则低序字将指定要用作对象标识符的数字标识符。 生成的 OID 映射到已安装或注册到同一 OID 的函数。
[in] dwFlags
此参数可以是以下值。
值 | 含义 |
---|---|
|
仅搜索已安装的函数列表。 |
[out] ppvFuncAddr
指向函数地址的指针的指针。 如果找到匹配项, 则 ppvFuncAddr 指向函数地址。
[out] phFuncAddr
如果找到匹配项, phFuncAddr 指向函数句柄。 句柄的 引用计数 递增。 使用完句柄后,通过调用 CryptFreeOIDFunctionAddress 函数释放句柄。
返回值
如果函数成功并找到匹配项,该函数将返回非零 (TRUE) 。
如果函数失败或找不到匹配项,则返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。
备注
可以将 pszOID 参数设置为 CMSG_DEFAULT_INSTALLABLE_FUNC_OID 调用 CryptGetOIDFunctionAddress,以获取以下回调函数的默认可安装函数。
若要检索默认函数,请将 dwEncodingType 设置为以下编码类型的按位 OR 组合。
CRYPT_ASN_ENCODINGX509_ASN_ENCODING
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |