CryptDestroyKey 函式 (wincrypt.h)
重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
如果控制碼參考工作階段金鑰,或已匯入至 密碼編譯服務提供者 的公開金鑰, (CSP 透過 CryptImportKey) ,此函式會終結金鑰,並釋放金鑰所使用的記憶體。 許多 CSP 會在釋放金鑰之前覆寫保留的記憶體。 不過,此函式不會終結基礎 公開/私密金鑰組 。 只會終結控制碼。
語法
BOOL CryptDestroyKey(
[in] HCRYPTKEY hKey
);
參數
[in] hKey
要終結之索引鍵的控制碼。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 如需擴充錯誤資訊,請呼叫 GetLastError。
由 「NTE」 開頭的錯誤碼是由所使用的特定 CSP 所產生。 下表列出一些可能的錯誤碼。
傳回碼 | 描述 |
---|---|
|
hKey指定的索引鍵物件目前正在使用,而且無法終結。 |
|
hKey參數會指定不正確控制碼。 |
|
hKey參數包含不正確值。 |
|
hKey參數不包含金鑰的有效控制碼。 |
|
找不到建立金鑰時指定的 CSP 內容。 |
備註
金鑰會佔用作業系統的記憶體空間和 CSP 的記憶體空間。 某些 CSP 會在硬體中實作,且記憶體資源有限。 當應用程式完成時,應用程式必須使用 CryptDestroyKey 函式來終結所有金鑰。
使用特定 CSP 建立或匯入的所有金鑰控制碼都必須終結,才能使用 CryptReleaseCoNtext 函式釋放該 CSP 控制碼。
範例
如需使用 CryptDestroyKey 函式的範例,請參閱 範例 C 程式:建立和雜湊工作階段金鑰。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |