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


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 структуры.

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

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

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

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

Никакой.

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

Никакой.

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

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

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

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8
заголовка ehstorbandmgmt.h (include EhStorBandMgmt.h)

См. также

BAND_LOCATION_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_LOCATION_PARAMETERS