CryptGetDefaultOIDFunctionAddress 函数 (wincrypt.h)

CryptGetDefaultOIDFunctionAddress 函数加载包含默认函数地址的 DLL。 它还可以在初始化的函数集中返回第一个或下一个安装的默认 对象标识符 (OID) 函数的地址,并加载包含该函数地址的 DLL。

语法

BOOL CryptGetDefaultOIDFunctionAddress(
  [in]           HCRYPTOIDFUNCSET  hFuncSet,
  [in]           DWORD             dwEncodingType,
  [in, optional] LPCWSTR           pwszDll,
  [in]           DWORD             dwFlags,
  [out]          void              **ppvFuncAddr,
  [in, out]      HCRYPTOIDFUNCADDR *phFuncAddr
);

参数

[in] hFuncSet

以前从调用 CryptInitOIDFunctionSet 获取的函数集句柄。

[in] dwEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

[in, optional] pwszDll

要加载的 DLL 的名称。 通常,DLL 名称是从 CryptGetDefaultOIDDllList 返回的列表中获取的。 如果 pwszDllNULL,则对已安装的默认函数列表执行搜索。

[in] dwFlags

保留以供将来使用,必须为零。

[out] ppvFuncAddr

指向返回函数地址的指针。 如果函数失败,则会在 ppvFuncAddr 中返回 NULL

[in, out] phFuncAddr

仅当 pwszDllNULL 时使用。 首次调用函数时,*phFuncAddr 必须为 NULL 才能获取第一个已安装的函数。

如果此函数成功,则 *phFuncAddr 设置为函数句柄。 函数句柄的 引用计数 递增。

首次调用函数后, phFuncAddr 设置为上一次调用返回的指针。 此输入指针始终通过此函数调用 CryptFreeOIDFunctionAddress 在函数中释放。 即使main函数返回错误,也始终调用释放指针。

NULLphFuncAddr 必须通过调用 CryptFreeOIDFunctionAddress 或作为输入传回此函数或作为 CryptGetOIDFunctionAddress 的输入来释放。

如果 pwszDll 不为 NULL,则忽略此参数的值,并且不会释放非 NULL 指针。

返回值

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

如果函数失败,它将返回零 (FALSE) 。

要求

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

另请参阅

OID 支持函数