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
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

OID 支援函式