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


структура DEVICE_MANAGE_DATA_SET_ATTRIBUTES (ntddstor.h)

Структура DEVICE_DSM_INPUT (или DEVICE_MANAGE_DATA_SET_ATTRIBUTES) указывает действие управления для атрибутов набора данных для устройства.

Синтаксис

typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
  ULONG             Size;
  DEVICE_DSM_ACTION Action;
  ULONG             Flags;
  ULONG             ParameterBlockOffset;
  ULONG             ParameterBlockLength;
  ULONG             DataSetRangesOffset;
  ULONG             DataSetRangesLength;
} DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES, DEVICE_DSM_INPUT, *PDEVICE_DSM_INPUT;

Члены

Size

Размер структуры DEVICE_DSM_INPUT в байтах. Значение этого элемента изменится по мере добавления элементов в структуру.

Action

Значение DEVICE_DSM_ACTION, указывающее выполняемое действие. Список значений и описаний действий см. в разделе Описания DEVICE_DSM_ACTION.

Если флаг DeviceDsmActionFlag_NonDestructive (наиболее значительный бит) установлен в действии, указанное действие неразрушающее. Для неразрушительных действий драйвер может безопасно пересылать запрос IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES на следующий драйвер ниже в стеке, даже если драйвер не обрабатывает указанное действие. Если драйвер работает с DSM, он должен выполнить обычную обработку блока диапазонов набора данных, заданного элементами DataSetRangesOffset и DataSetRangesLength , прежде чем перенаправлять запрос IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES в следующий нижний драйвер.

Flags

Эти флаги являются глобальными для всех действий управления. Для этого элемента можно задать один из следующих флагов:

Значение флага Значение
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE Действие элемента управления указывается для всего блока диапазонов наборов данных. Если этот флаг установлен, элементы DataSetRangesOffset и DataSetRangesLength должны иметь нулевое значение.

ParameterBlockOffset

Указывает начало блока параметров в полезных данных запроса IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES . Формат блока параметров зависит от значения элемента Action . Дополнительные сведения о формате блока параметров см. в разделе описания DEVICE_DSM_ACTION. Примечание. Смещение блока параметров должно быть выровнено по границе адреса соответствующего параметра.

Если параметр ParameterBlockOffset равен нулю, блок параметров не существует.

ParameterBlockLength

Указывает длину (в байтах) блока параметров в полезных данных запроса IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES.

Если параметр ParameterBlockLength имеет нулевое значение, блок параметров не существует.

DataSetRangesOffset

Указывает начало блока диапазонов набора данных в полезных данных запроса IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES. Этот блок состоит из одной или нескольких смежных записей, отформатированных как DEVICE_DSM_RANGE структуры. Примечание. Смещение блока диапазона набора данных должно быть выровнено по границе адреса структуры DEVICE_DSM_RANGE.

Если задано нулевое значение, блок диапазонов набора данных не существует.

DataSetRangesLength

Указывает длину (в байтах) блока диапазонов наборов данных в полезных данных запроса IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES. Если dataSetRangesLength имеет нулевое значение, блок диапазонов наборов данных не существует.

Комментарии

Дополнительные сведения о формате полезных данных для запроса IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES см. в разделе Общие сведения об управлении наборами данных. Общий размер буфера должен быть не менее sizeof(DEVICE_DSM_INPUT) + ParameterBlockLength + DataSetRangesLength.

Блок диапазонов наборов данных определяется элементами DataSetRangesOffset и DataSetRangesLength . Если этот блок существует, он содержит непрерывные DEVICE_DSM_RANGE структуры.

Требования

Требование Значение
Заголовок ntddstor.h (включая Ntddstor.h)

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

Общие сведения об управлении набором данных

Описания DEVICE_DSM_ACTION

DEVICE_DSM_RANGE

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES