CryptRegisterOIDFunction 函数 (wincrypt.h)
CryptRegisterOIDFunction 函数注册一个 DLL,其中包含要为指定的编码类型、函数名称和对象标识符调用的函数 (OID) 。
默认情况下,新函数名称安装在列表的末尾。 若要在已安装函数之前注册新函数,请调用 CryptSetOIDFunctionValueValue 函数,其中 dwValueType 设置为 REG_DWORDpwszValueName 设置为 CRYPT_OID_REG_FLAGS_VALUE_NAME。
CRYPT_OID_REG_FLAGS_VALUE_NAME定义为 L“CryptFlags”。
除了注册 DLL 之外,还可以重写要调用的函数的名称。 例如,pszFuncName 参数可以设置为 CryptDllEncodeObject,pszOverrideFuncName 参数设置为 MyEncodeXyz。 然后,可以使用名称 MyEncodeXyz 引用 CryptDllEncodeObject 的新形式。 这允许 DLL 导出多个 OID 函数,以获取相同的函数名称,而无需插接自己的 OID 调度程序函数。
语法
BOOL CryptRegisterOIDFunction(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszDll,
[in] LPCSTR pszOverrideFuncName
);
参数
[in] dwEncodingType
指定要匹配的编码类型。 目前,仅使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING:但是,将来可能会添加其他编码类型。 若要匹配当前两种编码类型,请使用:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pszFuncName
正在注册的函数的名称。
[in] pszOID
要注册的函数的 OID。 如果 OID 的高阶字非零, 则 pszOID 是指向 OID 字符串(如“2.5.29.1”)或 ASCII 字符串(如“file”)的指针。如果 OID 的高序字为零,则低序字将指定要用作对象标识符的数字标识符。
[in] pwszDll
要注册的 DLL 文件的名称。 加载 DLL 之前,它可以包含要通过使用 ExpandEnvironmentStrings 函数进行扩展的环境变量字符串。
[in] pszOverrideFuncName
指定 DLL 中导出的函数的名称的字符串。 如果 pszOverrideFuncName 为 NULL,则使用 pszFuncName 指定的函数名称。
返回值
如果函数成功,则返回值为非零 (TRUE) 。
如果函数失败,则返回值为零, (FALSE) 。
注解
使用完 OID 函数后,通过调用 CryptUnregisterOIDFunction 函数来注销它。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |