Поделиться через


Функция BCryptQueryContextFunctionConfiguration (bcrypt.h)

[BCryptQueryContextFunctionConfiguration доступен для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]

Функция BCryptQueryContextFunctionConfiguration получает сведения о конфигурации криптографической функции для существующего контекста CNG.

Синтаксис

NTSTATUS BCryptQueryContextFunctionConfiguration(
  [in]      ULONG                          dwTable,
  [in]      LPCWSTR                        pszContext,
  [in]      ULONG                          dwInterface,
  [in]      LPCWSTR                        pszFunction,
  [in, out] ULONG                          *pcbBuffer,
  [in, out] PCRYPT_CONTEXT_FUNCTION_CONFIG *ppBuffer
);

Параметры

[in] dwTable

Определяет таблицу конфигурации, в котором существует контекст. Это может быть одно из следующих значений.

Значение Значение
CRYPT_LOCAL
Контекст существует в таблице конфигурации локального компьютера.
CRYPT_DOMAIN
Это значение недоступно для использования.

[in] pszContext

Указатель на строку Юникода, завершающуюся null, которая содержит идентификатор контекста для получения сведений о конфигурации функции.

[in] dwInterface

Идентифицирует криптографический интерфейс для получения сведений о конфигурации функции. Это может быть одно из следующих значений.

Значение Значение
BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE
Получите сведения о конфигурации функции из списка функций асимметричного шифрования.
BCRYPT_CIPHER_INTERFACE
Получите сведения о конфигурации функции из списка функций шифра.
BCRYPT_HASH_INTERFACE
Получите сведения о конфигурации функции из списка хэш-функций.
BCRYPT_RNG_INTERFACE
Получите сведения о конфигурации функции из списка функций генератора случайных чисел.
BCRYPT_SECRET_AGREEMENT_INTERFACE
Получите сведения о конфигурации функции из списка функций секретного соглашения.
BCRYPT_SIGNATURE_INTERFACE
Получите сведения о конфигурации функции из списка функций подписи.
NCRYPT_KEY_STORAGE_INTERFACE
Получите сведения о конфигурации функции из списка функций хранилища ключей.
NCRYPT_SCHANNEL_INTERFACE
Получите сведения о конфигурации функции из списка функций Schannel.

[in] pszFunction

Указатель на строку Юникода, завершающуюся null, которая содержит идентификатор криптографической функции для получения сведений о конфигурации.

[in, out] pcbBuffer

Адрес переменной ULONG , которая при входе содержит размер буфера, на который указывает ppBuffer, в байтах. Если этот размер недостаточно велик для хранения сведений о контексте, эта функция завершится сбоем с STATUS_BUFFER_TOO_SMALL.

После возврата этой функции эта переменная содержит количество байтов, скопированных в буфер ppBuffer .

[in, out] ppBuffer

Адрес указателя на структуру CRYPT_CONTEXT_FUNCTION_CONFIG , получающую сведения о конфигурации функции, полученные этой функцией. Значение, на которое указывает параметр pcbBuffer , содержит размер этого буфера.

Если значение, на которое указывает этот параметр, равно NULL, эта функция выделяет необходимую память. Эта память должна быть освобождена, если она больше не нужна, путем передачи этого указателя в функцию BCryptFreeBuffer .

Если этот параметр имеет значение NULL, эта функция поместит необходимый размер в байтах в переменную, на которую указывает параметр pcbBuffer , и вернет STATUS_BUFFER_TOO_SMALL.

Дополнительные сведения об использовании этого параметра см. в разделе Примечания.

Возвращаемое значение

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.

Возможные коды возврата включают, помимо прочего, следующие.

Код возврата Описание
STATUS_SUCCESS
Функция выполнена успешно.
STATUS_BUFFER_TOO_SMALL
Параметр ppBuffer не имеет значение NULL, а значение, на которое указывает параметр pcbBuffer , недостаточно велико для хранения набора контекстов.
STATUS_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
STATUS_NO_MEMORY
Произошел сбой выделения памяти.
STATUS_NOT_FOUND
Не удалось найти указанный контекст или функцию.

Комментарии

Каждая криптографическая функция имеет только один набор сведений о конфигурации, поэтому, хотя параметр ppBuffer , как представляется, используется в качестве массива, эта функция рассматривает его как массив только с одним элементом. В следующем примере показано, как используется этот параметр.

// Get the function configuration information.
CRYPT_CONTEXT_FUNCTION_CONFIG FuncConfig;
ULONG uSize = sizeof(FuncConfig);
PCRYPT_CONTEXT_FUNCTION_CONFIG pFuncConfig = &FuncConfig;
status = BCryptQueryContextFunctionConfiguration(
    CRYPT_LOCAL, 
    pszContext, 
    NCRYPT_SCHANNEL_INTERFACE,
    pszFunction,
    &uSize, 
    &pFuncConfig);

BCryptQueryContextFunctionConfiguration можно вызывать только в пользовательском режиме.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header bcrypt.h
Библиотека Bcrypt.lib
DLL Bcrypt.dll

См. также раздел

CRYPT_CONTEXT_FUNCTION_CONFIG