共用方式為


BCryptResolveProviders 函式 (bcrypt.h)

BCryptResolveProviders 函式會取得符合指定準則之所有提供者的集合。

語法

NTSTATUS BCryptResolveProviders(
  [in, optional] LPCWSTR              pszContext,
  [in, optional] ULONG                dwInterface,
  [in, optional] LPCWSTR              pszFunction,
  [in, optional] LPCWSTR              pszProvider,
  [in]           ULONG                dwMode,
  [in]           ULONG                dwFlags,
  [in, out]      ULONG                *pcbBuffer,
  [in, out]      PCRYPT_PROVIDER_REFS *ppBuffer
);

參數

[in, optional] pszContext

Null 終止的 Unicode 字串指標,其中包含要取得提供者之內容的標識碼。 如果這會設定為 NULL 或空字串,則會假設預設內容。

[in, optional] dwInterface

提供者必須支持的介面標識碼。 這必須是CNG 介面識別碼之一。 如果 pszFunction 參數未 NULL 或空字串,您可以將 dwInterface 設定為零,強制函式推斷介面。

[in, optional] pszFunction

以 Null 終止的 Unicode 字串指標,其中包含提供者必須支援的演算法或函式識別碼。 這可以是其中一個標準 CNG 演演算法識別碼 或另一個已註冊演算法的標識碼。 如果 dwInterface 設定為非零值,則可以 pszFunctionNULL 以包含所有演算法和函式。

[in, optional] pszProvider

Null 終止的 Unicode 字串指標,其中包含要擷取之提供者的名稱。 如果此參數 NULL,則會包含所有提供者。

此參數可讓您指定特定提供者,以擷取多個提供者符合其他準則的事件。

[in] dwMode

指定要擷取的提供者類型。 這可以是下列其中一個值。

價值 意義
CRYPT_UM
擷取使用者模式提供者。
CRYPT_KM
擷取核心模式提供者。
CRYPT_MM
擷取使用者模式和核心模式提供者。

[in] dwFlags

一組旗標,可修改此函式的行為。

這可以是零或下列一或多個值的組合。

價值 意義
CRYPT_ALL_FUNCTIONS
1
此函式會擷取每個符合指定準則之提供者所支援的所有函式。 如果未指定此旗標,則此函式只會擷取符合指定準則之提供者或提供者的第一個函式。
CRYPT_ALL_PROVIDERS
2
此函式會擷取符合指定準則的所有提供者。 如果未指定此旗標,此函式只會擷取符合指定準則的第一個提供者。

[in, out] pcbBuffer

DWORD 值的指標,在專案上,會包含 ppBuffer 參數所指向之緩衝區的大小,以位元組為單位。 結束時,這個值會接收複製到緩衝區的位元組數目,或緩衝區所需的大小,以位元組為單位。

[in, out] ppBuffer

接收符合指定準則之提供者集合之 CRYPT_PROVIDER_REFS 指標的位址。

如果此參數 NULL,則此函式會傳回 STATUS_SUCCESS,並將置於 參數所指向的值中,該參數是所有數據的必要大小,以位元組為單位。

如果此參數是 NULL 指標的位址,則此函式會配置所需的記憶體、以提供者的相關信息填入記憶體,並將指標放在此參數中。 當您完成使用此記憶體時,請將此指標傳遞至 BCryptFreeBuffer 函式,以釋放它。

如果此參數是非NULL 指標的位址,則此函式會將提供者資訊複製到這個緩衝區。 參數必須包含整個緩衝區的大小,以位元組為單位。 如果緩衝區不夠大,無法儲存所有提供者資訊,則此函式會傳回 STATUS_BUFFER_TOO_SMALL

傳回值

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

可能的傳回碼包括,但不限於下列專案。

傳回碼 描述
STATUS_SUCCESS
函式成功。
STATUS_BUFFER_TOO_SMALL
參數所指定的大小不足以保存所有數據。
STATUS_INVALID_PARAMETER
一或多個參數無效。
STATUS_NOT_FOUND
找不到符合所有指定準則的提供者。

言論

BCryptResolveProviders 可以從使用者模式或核心模式呼叫。 核心模式呼叫端必須在 IRQL PASSIVE_LEVEL執行。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 bcrypt.h
連結庫 Bcrypt.lib
DLL Bcrypt.dll