CryptRegisterOIDFunction 函式 (wincrypt.h)

CryptRegisterOIDFunction 函式會註冊 DLL,其中包含要針對指定的編碼類型、函式名稱和對象標識元呼叫的函式, (OID) 。

根據預設,新的函式名稱會安裝在清單的結尾。 若要在已安裝的函式之前註冊新的函式,請呼叫 CryptSetOIDFunctionValue 函式, 並將 dwValueType 設定為 REG_DWORD ,並將 pwszValueName 設定為 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 中匯出之函式的名稱。 如果 pszOverrideFuncNameNULL則會使用 pszFuncName 所指定的函式名稱。

傳回值

如果函式成功,傳回值為非零 (TRUE) 。

如果函式失敗,傳回值為零, (FALSE) 。

備註

當您完成使用 OID 函式時,請呼叫 CryptUnregisterOIDFunction 函 式來取消註冊它。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CryptSetOIDFunctionValue

CryptUnregisterOIDFunction

OID 支援函式