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.
Если для элемента 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) |