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

此參數可以是下列值。

意義
CRYPT_GET_INSTALLED_OID_FUNC_FLAG
只搜尋已安裝的函式清單。

[out] ppvFuncAddr

函式位址指標的指標。 如果找到相符專案, ppvFuncAddr 會指向函式位址。

[out] phFuncAddr

如果找到相符專案, phFuncAddr 會指向函式控制碼。 控制碼的 參考計數 會遞增。 當您完成使用控制碼時,請呼叫 CryptFreeOIDFunctionAddress 函式來釋放控制碼。

注意 根據預設,系統會搜尋已註冊和已安裝的函式清單。 若要只搜尋已安裝的函式清單,請設定CRYPT_GET_INSTALLED_OID_FUNC_FLAG。 此旗標會由已註冊的函式設定,以取得它所取代之預先安裝函式的位址。 例如,已註冊的函式可能會處理新的特殊案例,並呼叫預先安裝函式來處理其餘案例。
 

傳回值

如果函式成功且找到相符專案,則函式會傳回非零 (TRUE) 。

如果函式失敗或找不到相符專案,它會傳回零 (FALSE) 。 如需擴充錯誤資訊,請呼叫 GetLastError

備註

您可以呼叫 CryptGetOIDFunctionAddress ,並將 pszOID 引數設定為 CMSG_DEFAULT_INSTALLABLE_FUNC_OID ,以取得下列回呼函式的預設可安裝函式。

若要擷取預設函式,請將 dwEncodingType 設定為下列編碼類型的位 OR 組合。

CRYPT_ASN_ENCODINGX509_ASN_ENCODING

規格需求

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

另請參閱

OID 支援函式