Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Новые полосы создаются на устройстве хранения, управляемом группой, с помощью запроса IOCTL_EHSTOR_BANDMGMT_CREATE_BAND. В таблицу записей группы добавляется новая группа, которая включает в себя расположение и свойства безопасности группы.
Основной код
Входной буфер
Буфер на Irp->AssociatedIrp.SystemBuffer должен содержать структуру CREATE_BAND_PARAMETERS, за которой следует BAND_LOCATION_INFO, BAND_SECURITY_INFOи структуры AUTH_KEY.
Если для элемента CREATE_BAND_PARAMETERS AuthKeyOffset задано значение EHSTOR_BANDMGR_NO_KEY, входные данные в буфере системы не должны включать структуру AUTH_KEY.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength указывает размер буфера в байтах, который должен быть по крайней мере sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY).
Выходной буфер
Выходной буфер в Irp->AssociatedIrp.SystemBuffer при необходимости содержит значение ULONG для идентификатора только что созданного диапазона.
Длина выходного буфера
Parameters.DeviceIoControl.OutputBufferLength должен иметь по крайней мере размер(ULONG), чтобы получить идентификатор полосы. Если возврат идентификатора полосы не требуется, задайте для параметра Parameters.DeviceIoControl.OutputBufferLength значение 0.
Блок состояния
Одно из следующих значений можно вернуть в поле Status.
Значение состояния | Описание |
---|---|
STATUS_SUCCESS | Была создана новая группа. |
STATUS_INVALID_DEVICE_REQUEST | Устройство хранения не поддерживает управление полосами. |
STATUS_INVALID_BUFFER_SIZE | Недопустимый размер входного буфера. |
STATUS_INVALID_PARAMETER | Недопустимые сведения в входном буфере. |
STATUS_CONFLICTING_ADDRESSES | Группа не была создана из-за перекрывающихся расположений. |
STATUS_INSUFFICIENT_RESOURCES | Группа не была создана, так как таблица группы уже заполнена. |
STATUS_IO_DEVICE_ERROR | Сбой связи. Устройство хранения может быть несовместимо с протоколами безопасности. |
Замечания
Назначение ключа проверки подлинности только что созданному диапазону является необязательным. Если ключ не указан, где AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY в структуре CREATE_BAND_PARAMETERS, используется ключ проверки подлинности по умолчанию. Однако это оставляет группу уязвимой для другого вызывающего абонента, который может взять под контроль группу сразу после его создания, изменив его ключ проверки подлинности. Во время создания рекомендуется назначить ключ проверки подлинности, отличный от по умолчанию.
Изменения, внесенные в таблицу групп, по этому запросу фиксируются на устройстве атомарно до завершения запроса IOCTL. Поэтому гарантируется, что группа создается со всеми его наборами свойств или не создается вообще, если происходит сбой системы или питания.
Расположение новой полосы не должно перекрываться с существующей полосой или этот запрос завершится ошибкой STATUS_CONFLICTING_ADDRESSES.
Если полоса разблокирована, для ReadLock или записи BAND_SECURITY_INFO задано значение FALSE, а CREATEBAND_AUTHKEY_CACHING_ENABLED установлен в элементе флаговCREATE_BAND_PARAMETERS, а кэширование учетных данных включено. Драйвер silo проверки подлинности кэширует ключ проверки подлинности в памяти. Это позволяет драйверу silo автоматически проходить проверку подлинности доступа узла к устройству хранения, если требуется обслуживание томов, например изменение размера полосы.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8 |
заголовка | ehstorbandmgmt.h (include EhStorBandMgmt.h) |