CryptDestroyKey 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptDestroyKey函式會釋放hKey參數所參考的控制碼。 釋放金鑰控制碼之後,它已不再有效,因此無法再次使用。

如果控制碼參考工作階段金鑰,或已匯入至 密碼編譯服務提供者 的公開金鑰, (CSP 透過 CryptImportKey) ,此函式會終結金鑰,並釋放金鑰所使用的記憶體。 許多 CSP 會在釋放金鑰之前覆寫保留的記憶體。 不過,此函式不會終結基礎 公開/私密金鑰組 。 只會終結控制碼。

語法

BOOL CryptDestroyKey(
  [in] HCRYPTKEY hKey
);

參數

[in] hKey

要終結之索引鍵的控制碼。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 如需擴充錯誤資訊,請呼叫 GetLastError

由 「NTE」 開頭的錯誤碼是由所使用的特定 CSP 所產生。 下表列出一些可能的錯誤碼。

傳回碼 描述
ERROR_BUSY
hKey指定的索引鍵物件目前正在使用,而且無法終結。
ERROR_INVALID_HANDLE
hKey參數會指定不正確控制碼。
ERROR_INVALID_PARAMETER
hKey參數包含不正確值。
NTE_BAD_KEY
hKey參數不包含金鑰的有效控制碼。
NTE_BAD_UID
找不到建立金鑰時指定的 CSP 內容。

備註

金鑰會佔用作業系統的記憶體空間和 CSP 的記憶體空間。 某些 CSP 會在硬體中實作,且記憶體資源有限。 當應用程式完成時,應用程式必須使用 CryptDestroyKey 函式來終結所有金鑰。

使用特定 CSP 建立或匯入的所有金鑰控制碼都必須終結,才能使用 CryptReleaseCoNtext 函式釋放該 CSP 控制碼。

範例

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

規格需求

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

另請參閱

CryptDeriveKey

CryptGenKey

CryptGetUserKey

CryptImportKey

金鑰產生和 Exchange 函式