IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION IOCTL (ehstorbandmgmt.h)
Свойства расположения полос на устройстве хранения, управляемом группой, изменяются с помощью запроса IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION.
Основной код
Входной буфер
Буфер в 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) |