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


IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY IOCTL (ehstorbandmgmt.h)

Свойства безопасности диапазонов на устройстве хранения, управляемом по полосам, изменяются с помощью запроса IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY .

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Буфер в Irp-AssociatedIrp.SystemBuffer> должен содержать структуру SET_BAND_SECURITY_PARAMETERS, за которой следуют структуры AUTH_KEY и BAND_SECURITY_INFO.

Если для элемента AuthKeyOffsetSET_BAND_SECURITY_PARAMETERS задано значение EHSTOR_BANDMGR_NO_KEY, входные данные в системном буфере не должны включать AUTH_KEY структуру. Кроме того, если новый ключ проверки подлинности не предоставлен, обновленная структура ключа не включается.

Длина входного буфера

Parameters.DeviceIoControl.InputBufferLength указывает размер буфера в байтах, который должен быть не менее sizeof (SET_BAND_SECURITY_PARAMETERS) + 2 * sizeof(AUTH_KEY) + sizeof(BAND_SECURITY_INFO), если требуются все входные структуры.

Выходной буфер

Нет.

Длина выходного буфера

Нет.

Блок состояния

В поле Состояние можно вернуть одно из следующих значений.

Значение состояния Описание
STATUS_SUCCESS Свойства безопасности для полосы были изменены.
STATUS_INVALID_DEVICE_REQUEST Запоминающее устройство не поддерживает управление полосами.
STATUS_INVALID_BUFFER_SIZE Недопустимый размер входного буфера.
STATUS_INVALID_PARAMETER Недопустимые сведения во входном буфере.
STATUS_NOT_FOUND Группа не найдена для предоставленных критериев выбора.
STATUS_ACCESS_DENIED Указанный ключ проверки подлинности недопустим.
STATUS_IO_DEVICE_ERROR Сбой связи. Устройство хранения может быть несовместимо с протоколами безопасности.

Комментарии

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

Изменения ключа проверки подлинности не повлияют на состояние блокировки полосы. Нет необходимости отключать том, чтобы изменить ключ проверки подлинности с помощью этого запроса.

Если полоса разблокирована, то есть элементы Readlock или WriteLockBAND_SECURITY_INFO имеют значение FALSE, драйвер хранилища кэширует предоставленный ключ проверки подлинности, если SETBANDSEC_AUTHKEY_CACHING_ENABLED задан в элементе FlagsSET_BAND_SECURITY_PARAMETERS.

В особом случае этот IOCTL можно использовать для уведомления водителя силоса о том, что полоса была разблокирована без использования элементов блокировки в BAND_SECURITY_INFO. Для этого для элемента NewAuthKeyOffsetSET_BAND_SECURITY_PARAMETERS задано значение CurrentAuthKeyOffset , а для параметра BandSecurityInfoOffset — значение 0. В этом случае изменения системы безопасности не происходят, но ключ, предоставленный в CurrentAuthKeyOffset , кэшируется в памяти при условии, что SETBANDSEC_AUTHKEY_CACHING_ENABLED задан в разделе Флаги.

Изменения, внесенные в таблицу диапазонов этим запросом, фиксируются на устройстве атомарно до завершения запроса IOCTL. Таким образом, гарантируется, что полоса будет изменена со всеми заданными свойствами или вообще не будет задана, если произойдет сбой системы или питания.

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows 8
Верхняя часть ehstorbandmgmt.h (включая EhStorBandMgmt.h)

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

BAND_SECURITY_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_SECURITY_PARAMETERS