共用方式為


CryptSetProviderA 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft在未來版本中可能會移除此 API。
 
CryptSetProvider 函式會指定目前使用者的預設 密碼編譯服務提供者 (CSP)。

如果已設定目前用戶的預設提供者,該預設提供者是由該使用者 CryptAcquireContext 的任何呼叫取得, 指定 dwProvType 提供者類型,而不是 CSP 名稱。

此函式的增強版本 CryptSetProviderEx也可供使用。

注意 一般應用程式不會使用此函式。 它僅供系統管理應用程式使用。
 

語法

BOOL CryptSetProviderA(
  [in] LPCSTR pszProvName,
  [in] DWORD  dwProvType
);

參數

[in] pszProvName

新預設 CSP 的名稱。 具名 CSP 必須安裝在電腦上。 如需可用密碼編譯提供者的清單,請參閱 密碼編譯提供者名稱

[in] dwProvType

pszProvName所指定的 CSP 提供者類型。

傳回值

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

如果函式失敗,傳回值為零 (FALSE)。 如需擴充錯誤資訊,請呼叫 getLastError。 下表列出一些可能的錯誤碼。

傳回碼 描述
ERROR_INVALID_HANDLE
其中一個參數指定無效的句柄。
ERROR_INVALID_PARAMETER
其中一個參數包含無效的值。 這通常是無效的指標。
ERROR_NOT_ENOUGH_MEMORY
操作系統在作業期間記憶體不足。
 

錯誤也可以從內部呼叫傳播至 RegCreateKeyExRegSetValueEx

言論

呼叫 cryptAcquireContext 時,一般應用程式不會指定 CSP 名稱;不過,應用程式確實可以選擇選取特定的 CSP。 這可讓使用者自由選取具有適當安全性層級的 CSP。

由於呼叫 CryptSetProvider 會決定從該點執行的所有應用程式所使用的指定型別 CSP,因此在未經使用者同意的情況下,不得呼叫此函式。

注意

wincrypt.h 標頭會根據 UNICODE 預處理器常數的定義,將 CryptSetProvider 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Advapi32.lib
DLL Advapi32.dll

另請參閱

CryptAcquireContext

密碼編譯提供者名稱

RegCreateKeyEx

RegSetValueEx

Service Provider Functions