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


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

Функция BCryptGetProperty извлекает значение именованного свойства для объекта CNG.

Синтаксис

NTSTATUS BCryptGetProperty(
  [in]  BCRYPT_HANDLE hObject,
  [in]  LPCWSTR       pszProperty,
  [out] PUCHAR        pbOutput,
  [in]  ULONG         cbOutput,
  [out] ULONG         *pcbResult,
  [in]  ULONG         dwFlags
);

Параметры

[in] hObject

Дескриптор, представляющий объект CNG для получения значения свойства.

[in] pszProperty

Указатель на строку Юникода, завершающую значение NULL, содержащую имя свойства для извлечения. Это может быть один из стандартных идентификаторов Cryptography Primitive Property Identifiers или пользовательского идентификатора свойства.

[out] pbOutput

Адрес буфера, получающего значение свойства. Параметр cbOutput содержит размер этого буфера.

[in] cbOutput

Размер в байтах буфера pbOutput .

[out] pcbResult

Указатель на переменную ULONG , которая получает количество байтов, скопированных в буфер pbOutput . Если параметр pbOutput имеет NULLзначение, эта функция будет размещать требуемый размер в байтах в расположении, на которое указывает этот параметр.

[in] dwFlags

Набор флагов, изменяющих поведение этой функции. Для этой функции флаги не определены.

Этот параметр должен иметь значение нулю для ML-KEM.

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

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

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

Код возврата Описание
STATUS_SUCCESS Функция была успешной.
STATUS_BUFFER_TOO_SMALL Размер буфера, указанный параметром cbOutput , недостаточно велик для хранения значения свойства.
STATUS_INVALID_HANDLE Дескриптор в параметре hObject недопустим.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР Один или несколько параметров недопустимы.
STATUS_NOT_SUPPORTED Свойство, указанное параметром pszProperty , не поддерживается.

Замечания

Чтобы получить требуемый размер свойства, передайте NULL для параметра pbOutput . Эта функция будет размещать требуемый размер в байтах в значении, на которое указывает параметр pcbResult .

В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptGetProperty можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL DISPATCH_LEVEL, все указатели, передаваемые функции BCryptGetProperty , должны ссылаться на неупакованную (или заблокированную) память. Если объект, указанный в параметре hObject , является дескриптором, он должен быть открыт с помощью флага BCRYPT_PROV_DISPATCH .

Свойство BCRYPT_PARAMETER_SET_NAME должно быть задано в ключах BCrypt ML-DSA, прежде чем их можно будет использовать. Эти данные можно получить из ключевых объектов.

Чтобы вызвать эту функцию в режиме ядра, используйте Cng.libпакет средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: Чтобы вызвать эту функцию в режиме ядра, используйте Ksecdd.lib.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2008 [классические приложения | Приложения UWP]
целевая платформа Виндоус
Заголовок bcrypt.h
Библиотека Bcrypt.lib
Библиотека dll Bcrypt.dll