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,则应在将IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES请求转发到下一个较低的驱动程序之前,对 DataSetRangesOffsetDataSetRangesLength 成员指定的数据集范围块执行正常处理。

Flags

这些标志对所有控件操作都是全局性的。 此成员可以设置为以下标志之一:

标志值 含义
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE 控制操作是为整个数据集范围块指定的。 如果设置了此标志,必须将 DataSetRangesOffsetDataSetRangesLength 成员设置为零。

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

数据集范围块由 DataSetRangesOffsetDataSetRangesLength 成员指定。 如果此块存在,则包含连续 DEVICE_DSM_RANGE 结构。

要求

要求
Header ntddstor.h (包括 Ntddstor.h)

另请参阅

数据集管理概述

DEVICE_DSM_ACTION 说明

DEVICE_DSM_RANGE

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES