共用方式為


NCryptEnumAlgorithms 函式 (ncrypt.h)

NCryptEnumAlgorithms 函式會取得指定密鑰儲存提供者所支援的演算法名稱。

語法

SECURITY_STATUS NCryptEnumAlgorithms(
  [in]  NCRYPT_PROV_HANDLE  hProvider,
  [in]  DWORD               dwAlgOperations,
  [out] DWORD               *pdwAlgCount,
  [out] NCryptAlgorithmName **ppAlgList,
  [in]  DWORD               dwFlags
);

參數

[in] hProvider

要列舉演算法的金鑰儲存提供者句柄。 此句柄是使用 NCryptOpenStorageProvider 函式取得。

[in] dwAlgOperations

一組值,決定要列舉的演算法類別。 這可以是零或下列一或多個值的組合。 如果 dwAlgOperations 為零,則會列舉所有演算法。

意義
NCRYPT_CIPHER_OPERATION
0x00000001
列舉加密 (對稱加密) 演算法。
NCRYPT_HASH_OPERATION
0x00000002
列舉哈希演算法。
NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION
0x00000004
列舉非對稱加密演算法。
NCRYPT_SECRET_AGREEMENT_OPERATION
0x00000008
列舉秘密合約演算法。
NCRYPT_SIGNATURE_OPERATION
0x00000010
列舉數位簽名演算法。

[out] pdwAlgCount

接收 ppAlgList 陣列中項目數目的 DWORD 位址。

[out] ppAlgList

接收已註冊演算法名稱陣列的 NCryptAlgorithmName 結構指標位址。 pdwAlgCount 參數所指向的變數會接收這個陣列中的元素數目。

不再需要此記憶體時,必須將這個指標傳遞至 NCryptFreeBuffer 函式,以釋放它。

[in] dwFlags

修改函式行為的旗標。 這可以是零 (0) 或下列值。

意義
NCRYPT_SILENT_FLAG
要求金鑰服務提供者 (KSP) 不會顯示任何使用者介面。 如果提供者必須顯示要運作的UI,呼叫會失敗,而 KSP 應該將NTE_SILENT_CONTEXT錯誤碼設定為最後 一個 錯誤。

傳回值

傳回狀態代碼,指出函式的成功或失敗。

可能的傳回碼包括但不限於下列各項。

傳回碼 Description
ERROR_SUCCESS
函式成功。
NTE_BAD_FLAGS
dwFlags 參數包含無效的值。
NTE_INVALID_HANDLE
hProvider 參數無效。
NTE_INVALID_PARAMETER
一或多個參數無效。
NTE_NO_MEMORY
發生記憶體配置失敗。

備註

服務不得從它的 StartService 函式呼叫此函式。 如果服務從它的 StartService 函式呼叫此函式,可能會發生死結,而且服務可能會停止回應。

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 ncrypt.h
程式庫 Ncrypt.lib
Dll Ncrypt.dll