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
提供者必須支持的介面標識碼。 這必須是
[in, optional] pszFunction
以 Null 終止的 Unicode 字串指標,其中包含提供者必須支援的演算法或函式識別碼。 這可以是其中一個標準 CNG 演演算法識別碼 或另一個已註冊演算法的標識碼。 如果 dwInterface 設定為非零值,則可以 pszFunctionNULL 以包含所有演算法和函式。
[in, optional] pszProvider
Null 終止的 Unicode 字串指標,其中包含要擷取之提供者的名稱。 如果此參數 NULL,則會包含所有提供者。
此參數可讓您指定特定提供者,以擷取多個提供者符合其他準則的事件。
[in] dwMode
指定要擷取的提供者類型。 這可以是下列其中一個值。
價值 | 意義 |
---|---|
|
擷取使用者模式提供者。 |
|
擷取核心模式提供者。 |
|
擷取使用者模式和核心模式提供者。 |
[in] dwFlags
一組旗標,可修改此函式的行為。
這可以是零或下列一或多個值的組合。
價值 | 意義 |
---|---|
|
此函式會擷取每個符合指定準則之提供者所支援的所有函式。 如果未指定此旗標,則此函式只會擷取符合指定準則之提供者或提供者的第一個函式。 |
|
此函式會擷取符合指定準則的所有提供者。 如果未指定此旗標,此函式只會擷取符合指定準則的第一個提供者。 |
[in, out] pcbBuffer
DWORD 值的指標,在專案上,會包含 ppBuffer 參數所指向之緩衝區的大小,以位元組為單位。 結束時,這個值會接收複製到緩衝區的位元組數目,或緩衝區所需的大小,以位元組為單位。
[in, out] ppBuffer
接收符合指定準則之提供者集合之 CRYPT_PROVIDER_REFS 指標的位址。
如果此參數 NULL,則此函式會傳回 STATUS_SUCCESS,並將置於 參數所指向的值中,該參數是所有數據的必要大小,以位元組為單位。
如果此參數是 NULL 指標的位址,則此函式會配置所需的記憶體、以提供者的相關信息填入記憶體,並將指標放在此參數中。 當您完成使用此記憶體時,請將此指標傳遞至 BCryptFreeBuffer 函式,以釋放它。
如果此參數是非NULL 指標的位址,則此函式會將提供者資訊複製到這個緩衝區。 參數必須包含整個緩衝區的大小,以位元組為單位。 如果緩衝區不夠大,無法儲存所有提供者資訊,則此函式會傳回 STATUS_BUFFER_TOO_SMALL。
傳回值
傳回狀態代碼,指出函式的成功或失敗。
可能的傳回碼包括,但不限於下列專案。
傳回碼 | 描述 |
---|---|
|
函式成功。 |
|
參數所指定的大小不足以保存所有數據。 |
|
一或多個參數無效。 |
|
找不到符合所有指定準則的提供者。 |
言論
BCryptResolveProviders 可以從使用者模式或核心模式呼叫。 核心模式呼叫端必須在 IRQL PASSIVE_LEVEL執行。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | bcrypt.h |
連結庫 | Bcrypt.lib |
DLL | Bcrypt.dll |