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

規格需求

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

另請參閱

CryptAcquireCoNtext

密碼編譯提供者名稱

RegCreateKeyEx

RegSetValueEx

服務提供者函式