Share via


CryptReleaseCoNtext 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptReleaseCoNtext函式會釋放密碼編譯服務提供者的控制碼, (CSP) 和金鑰容器。 每次呼叫此函式時,CSP 上的 參考計數 都會減少一個。 當參考計數達到零時, 內容 會完全釋放,而且應用程式中的任何函式都無法再使用它。

應用程式會在完成 CSP 的使用之後呼叫此函式。 呼叫此函式之後,發行的 CSP 控制碼就不再有效。 此函式不會終結 金鑰容器金鑰組

語法

BOOL CryptReleaseContext(
  [in] HCRYPTPROV hProv,
  [in] DWORD      dwFlags
);

參數

[in] hProv

呼叫 CryptAcquireCoNtext所建立的密碼編譯服務提供者 (CSP) 控制碼。

[in] dwFlags

保留供日後使用,且必須為零。 如果 dwFlags 未設定為零,此函式會傳回 FALSE ,但會釋放 CSP。

傳回值

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

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

傳回碼 描述
ERROR_BUSY
hProv指定的 CSP內容目前正由另一個進程使用。
ERROR_INVALID_HANDLE
其中一個參數指定不正確控制碼。
ERROR_INVALID_PARAMETER
其中一個參數包含不正確值。 這通常是不正確指標。
NTE_BAD_FLAGS
dwFlags參數為非零。
NTE_BAD_UID
hProv參數不包含有效的內容控制碼。

備註

呼叫此函式之後,CSP 會話就會完成,而且所有使用hProv控制碼建立的現有工作階段金鑰和雜湊物件都不再有效。 實際上,在呼叫CryptReleaseCoNtext之前,應該先呼叫CryptDestroyKeyCryptDestroyHash來終結所有這些物件。

範例

如需使用此函式的範例,請參閱 範例 C 程式:建立和雜湊工作階段金鑰

規格需求

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

另請參閱

CryptAcquireCoNtext

CryptDestroyHash

CryptDestroyKey

服務提供者函式