Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция BCryptDuplicateHash
Синтаксис
NTSTATUS BCryptDuplicateHash(
[in] BCRYPT_HASH_HANDLE hHash,
[out] BCRYPT_HASH_HANDLE *phNewHash,
[out] PUCHAR pbHashObject,
[in] ULONG cbHashObject,
[in] ULONG dwFlags
);
Параметры
[in] hHash
Дескриптор хэша или MAC-объекта для дублирования.
[out] phNewHash
Указатель на значение BCRYPT_HASH_HANDLE, которое получает дескриптор, представляющий повторяющийся хэш-объект или ОБЪЕКТ MAC.
[out] pbHashObject
Указатель на буфер, который получает повторяющийся хэш-объект или объект MAC. Параметр cbHashObject содержит размер этого буфера. Требуемый размер этого буфера можно получить путем вызова функции BCryptGetProperty для получения свойства BCRYPT_OBJECT_LENGTH. Это обеспечит размер хэш-объекта для указанного алгоритма.
При освобождении дубликата хэш-дескриптора освободит эту память.
[in] cbHashObject
Размер в байтах буфера pbHashObject.
[in] dwFlags
Набор флагов, изменяющих поведение этой функции. В настоящее время флаги не определены, поэтому этот параметр должен быть равен нулю.
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
| Возвращаемый код | Описание |
|---|---|
|
Функция была успешной. |
|
Размер хэш-объекта, указанного параметром cbHashObject, недостаточно велик для хранения хэш-объекта. |
|
Хэш-дескриптор в параметре hHash |
|
Один или несколько параметров недопустимы. |
Замечания
Эта функция полезна при вычислении хэша или MAC через блок общих данных. После обработки общих данных хэш-объект или объект MAC можно дублировать, а затем уникальные данные можно добавить в отдельные объекты.
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptDuplicateHash можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL DISPATCH_LEVEL, то дескриптор, предоставленный в параметре hHash hHash, должен быть производным от дескриптора алгоритма, возвращаемого поставщиком, который был открыт с помощью флага BCRYPT_PROV_DISPATCH, а все указатели, передаваемые в функцию BCryptDeskKey, должны ссылаться на неупакованную (или заблокированную) память.
Чтобы вызвать эту функцию в режиме ядра, используйте Cng.lib, которая входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: для вызова этой функции в режиме ядра используйте Ksecdd.lib.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Виндоус |
| заголовка | bcrypt.h |
| библиотеки |
Bcrypt.lib |
| DLL | Bcrypt.dll |