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


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

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

Синтаксис

NTSTATUS BCryptQueryContextFunctionProperty(
  [in]      ULONG   dwTable,
  [in]      LPCWSTR pszContext,
  [in]      ULONG   dwInterface,
  [in]      LPCWSTR pszFunction,
  [in]      LPCWSTR pszProperty,
  [in, out] ULONG   *pcbValue,
  [in, out] PUCHAR  *ppbValue
);

Параметры

[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] pszProperty

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

[in, out] pcbValue

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

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

[in, out] ppbValue

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

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

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

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

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

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

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

Комментарии

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

Требования

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