CryptInstallDefaultContext 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptInstallDefaultContext 函式會安裝特定提供者,以作為指定演算法的預設內容提供者。

語法

BOOL CryptInstallDefaultContext(
  [in]  HCRYPTPROV           hCryptProv,
  [in]  DWORD                dwDefaultType,
  [in]  const void           *pvDefaultPara,
  [in]  DWORD                dwFlags,
  [in]  void                 *pvReserved,
  [out] HCRYPTDEFAULTCONTEXT *phDefaultContext
);

參數

[in] hCryptProv

要作為預設內容之密碼編譯服務提供者的句柄。 此句柄是使用 CryptAcquireContext 函式取得的。

[in] dwDefaultType

指定要安裝的內容類型。 這必須是下列其中一個值。

意義
CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID
安裝用來驗證單一憑證簽章類型的預設提供者。

pvDefaultPara 參數是 Null 終止的 ANSI 字串位址,其中包含憑證簽章演算法的物件識別碼,例如,szOID_OIWSEC_md5RSA。 如果 pvDefaultPara 參數為 NULL,則會使用指定的提供者來驗證所有憑證簽章。 當設定 CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG 旗標時,pvDefaultPara 參數不能是 NULL

CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID
安裝用來驗證多個憑證簽章類型的預設提供者。

pvDefaultPara 參數是CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA結構的位址,其中包含用來識別要安裝指定提供者之憑證簽章演算法的物件標識元陣組。

[in] pvDefaultPara

指定要安裝預設內容提供者的物件或物件。 此參數的格式取決於 dwDefaultType 參數的內容。

[in] dwFlags

一組旗標,可修改此函式的行為。 這可以是零或下列一或多個值的組合。

意義
CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG
進程或線程結束時,hCryptProv 參數指定的提供者句柄會自動釋放。 如果未指定此旗標,當不再需要句柄時,呼叫端必須負責使用 CryptReleaseContext 函式釋放提供者句柄。 如果在進程或線程結束之前呼叫 CryptUninstallDefaultContext 函式,則不會釋放提供者句柄。
CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG
提供者會套用至進程中的所有線程。 如果未指定此旗標,提供者只會套用至呼叫線程。 設定此旗標時 ,pvDefaultPara 參數不能是 NULL

[in] pvReserved

這個參數保留給未來使用。

[out] phDefaultContext

接收預設內容句柄的 HCRYPTDEFAULTCONTEXT 變數位址。 此句柄會傳遞至 CryptUninstallDefaultContext 函式,以卸載預設內容提供者。

傳回值

如果函式成功,則傳回值為非零 (TRUE) 。 如果函式失敗,則傳回值為零, (FALSE) 。 如需擴充錯誤資訊,請呼叫 GetLastError

備註

已安裝的預設內容提供者會依堆疊排序,因此搜尋預設內容提供者時,系統會從最近安裝的提供者開始。 每個線程的提供者清單會在提供者的個別進程清單之前搜尋。 找到相符項目之後,系統不會繼續搜尋其他相符專案。

在呼叫 CryptUninstallDefaultContext 或線程或 進程 結束之前,已安裝的提供者句柄必須保持可供使用。

規格需求

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

另請參閱

CryptUninstallDefaultContext