BCryptEnumRegisteredProviders 函式 (bcrypt.h)
BCryptEnumRegisteredProviders 函式會擷取已註冊提供者的相關信息。
語法
NTSTATUS BCryptEnumRegisteredProviders(
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDERS *ppBuffer
);
參數
[in, out] pcbBuffer
ULONG 值的指標,在專案上,包含 ppBuffer 參數所指向之緩衝區的大小,以位元組為單位。 結束時,這個值會接收複製到緩衝區的位元組數目,或緩衝區的必要大小,以位元組為單位。
[in, out] ppBuffer
緩衝區指標的指標,可接收 CRYPT_PROVIDERS 結構和其他描述已註冊提供者集合的數據。
如果此參數為 NULL,此函式會傳回 STATUS_BUFFER_TOO_SMALL ,並將放在 由STATUS_BUFFER_TOO_SMALL 參數所指向的值、必要大小、以位元組為單位的所有數據。
如果此參數是 NULL 指標的位址,則此函式會配置所需的記憶體、填入記憶體中提供者的相關信息,並將指標放在此參數中。 當您完成使用此記憶體時,請將此指標傳遞至 BCryptFreeBuffer 函 式來釋放它。
如果此參數是非 NULL 指標的位址,此函式會將提供者資訊複製到此緩衝區。 azurebuffer 參數必須包含整個緩衝區的大小,以位元組為單位。 如果緩衝區不夠大,無法保存所有提供者資訊,此函式會傳回 STATUS_BUFFER_TOO_SMALL。
傳回值
傳回狀態代碼,指出函式的成功或失敗。
可能的傳回碼包括但不限於下列各項。
傳回碼 | Description |
---|---|
|
函式成功。 |
|
由 azureBuffer 參數指定的大小不夠大,無法保存所有數據。 |
|
一或多個參數無效。 |
備註
BCryptEnumRegisteredProviders 函式可以下列兩種方式之一呼叫:
-
第一個是讓 BCryptEnumRegisteredProviders 函 式配置記憶體。 這可藉由傳遞 ppBuffer 參數的 NULL 指標位址來完成。
下列範例示範如何使用 BCryptEnumRegisteredProviders 函式,傳遞 ppBuffer 參數的 NULL 指標地址來配置記憶體。
PCRYPT_PROVIDERS pBuffer = NULL; BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
此程式代碼會配置 CRYPT_PROVIDERS 結構和相關聯字串所需的記憶體。 以這種方式使用 BCryptEnumRegisteredProviders 函式時,您必須將 ppBuffer 傳遞至 BCryptFreeBuffer 函式,以釋出不再需要的記憶體。
- 第二種方法是自行配置所需的記憶體。 這可藉由針對 ppBuffer 參數呼叫具有 NULL 的 BCryptEnumRegisteredProviders 函式來完成。 BCryptEnumRegisteredProviders 函式會放在由CRYPT_PROVIDERS結構和所有字串CRYPT_PROVIDERS所需的大小,以位元組為單位的值中。 接著,您會配置必要的記憶體,並在第二次呼叫 BCryptEnumRegisteredProviders 函式中傳遞 ppBuffer 參數的這個緩衝區指標位址。
BCryptEnumRegisteredProviders 只能在使用者模式中呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | bcrypt.h |
程式庫 | Bcrypt.lib |
Dll | Bcrypt.dll |