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


IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION IOCTL (ehstorbandmgmt.h)

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

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

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

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

Parameters.DeviceIoControl.InputBufferLength указывает размер буфера в байтах, который должен быть не менее sizeof (SET_BAND_LOCATION_PARAMETERS) + sizeof(AUTH_KEY) + sizeof(BAND_LOCATION_INFO).

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

Нет.

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

Нет.

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

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

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

Комментарии

Данные в LBA, остающиеся после изменения размера, не изменяются операцией. Кроме того, нет необходимости отключать том во время операции изменения размера, если диапазон LBA, охватывающий том, остается в пределах диапазона после изменения размера.

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

Элемент BandSizeBAND_LOCATION_INFO должен быть больше 0. Этот IOCTL не может изменить размер полосы на 0, чтобы вызвать удаление полосы. Для удаления полосы используется запрос IOCTL_EHSTOR_BANDMGMT_DELETE_BAND .

Если BAND_LOCATION_INFO задает свойства глобального диапазона, bandStart должен иметь значение 0, а BandSize — –1.

Требования

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

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

BAND_LOCATION_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_LOCATION_PARAMETERS