Функция 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, которая содержит имя извлекаемого свойства. Это может быть один из предопределенных идентификаторов примитивных свойств шифрования или идентификатор пользовательского свойства.
[out] pbOutput
Адрес буфера, получающего значение свойства. Параметр cbOutput содержит размер этого буфера.
[in] cbOutput
Размер буфера pbOutput (в байтах).
[out] pcbResult
Указатель на переменную ULONG , получающую количество байтов, скопированных в буфер pbOutput . Если параметр pbOutput имеет значение NULL, эта функция поместит требуемый размер в байтах в расположение, указанное этим параметром.
[in] dwFlags
Набор флагов, которые изменяют поведение этой функции. Для этой функции не определены флаги.
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.
Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Размер буфера, заданный параметром cbOutput , недостаточно велик для хранения значения свойства. |
|
Дескриптор в параметре hObject недопустим. |
|
Один или несколько параметров недопустимы. |
|
Именованное свойство, указанное параметром pszProperty , не поддерживается. |
Комментарии
Чтобы получить необходимый размер для свойства, передайте значение NULL для параметра pbOutput . Эта функция поместит требуемый размер в байтах в значение, указываемое параметром pcbResult .
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptGetProperty можно вызывать либо из пользовательского режима, либо из режима ядра. Вызовы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL DISPATCH_LEVEL, все указатели, передаваемые в функцию BCryptGetProperty , должны ссылаться на непагированную (или заблокированную) память. Если объект, указанный в параметре hObject , является дескриптором, он должен быть открыт с помощью флага BCRYPT_PROV_DISPATCH .
Чтобы вызвать эту функцию в режиме ядра, используйте файл Cng.lib, который входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: Чтобы вызвать эту функцию в режиме ядра, используйте Ksecdd.lib.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | bcrypt.h |
Библиотека | Bcrypt.lib |
DLL | Bcrypt.dll |