winioctl.h) (DEVICE_MANAGE_DATA_SET_ATTRIBUTES 结构

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES控件代码 输入结构。

语法

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

成员

Size

此数据结构的大小。 必须设置为 sizeof(DEVICE_MANAGE_DATA_SET_ATTRIBUTES)

Action

DEVICE_DATA_MANAGEMENT_SET_ACTION 类型的有效值。

含义
DeviceDsmAction_Trim
1
执行剪裁操作。 用户模式应用程序不支持此值。
DeviceDsmAction_Notification
2 | DeviceDsmActionFlag_NonDestructive (0x80000002)
将执行通知操作。 其他参数采用 DEVICE_DSM_NOTIFICATION_PARAMETERS 结构。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。
DeviceDsmAction_OffloadRead
3 | DeviceDsmActionFlag_NonDestructive (0x80000003)
执行卸载读取操作。 其他参数采用 DEVICE_DSM_OFFLOAD_READ_PARAMETERS 结构。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

DeviceDsmAction_OffloadWrite
4
执行卸载写入操作。 其他参数采用 DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS 结构。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

DeviceDsmAction_Allocation
5 | DeviceDsmActionFlag_NonDestructive (0x80000005)
为指定的第一个数据集范围检索分配位图。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

DeviceDsmAction_Repair
6 | DeviceDsmActionFlag_NonDestructive (0x80000006)
执行修复操作。 其他参数采用 DEVICE_DATA_SET_REPAIR_PARAMETERS 结构。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

DeviceDsmAction_Scrub
7 | DeviceDsmActionFlag_NonDestructive (0x80000007)
执行清理操作。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

DeviceDsmAction_Resiliency
8 | DeviceDsmActionFlag_NonDestructive (0x80000008)
执行复原操作。 DeviceDsmActionFlag_NonDestructive (0x80000000) 是一个位标志,用于向驱动程序堆栈指示此操作是非破坏性的。

Windows 7 和 Windows Server 2008 R2: 在 Windows 8 和 Windows Server 2012 之前不支持此值。

Flags

操作的标志。

含义
DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED
0x80000000
如果设置,则文件系统不会分配所描述的范围。 此标志特定于 DeviceDsmAction_Trim 操作。
DEVICE_DSM_FLAG_RESILIENCY_START_RESYNC
0x10000000
在存储设备上启动重新同步操作。 此标志特定于 DeviceDsmAction_Resiliency 操作。
DEVICE_DSM_FLAG_RESILIENCY_START_LOAD_BALANCING
0x20000000
在存储设备上启动负载均衡操作。 此标志特定于 DeviceDsmAction_Resiliency 操作。

ParameterBlockOffset

存储在此结构连续的缓冲区中的参数块的起始位置的字节偏移量。 必须与相应的结构对齐。 值为零表示没有参数块, ParameterBlockLength 成员也必须为零。

ParameterBlockLength

参数块的长度(以字节为单位)。 值为零表示没有参数块, ParameterBlockOffset 成员也必须为零。

DataSetRangesOffset

数据集范围块开头的字节偏移量由存储在此结构的缓冲区中连续 DEVICE_DATA_SET_RANGE结构的数组 组成。 必须与 DEVICE_DATA_SET_RANGE 结构对齐。 值为零表示没有数据集范围块, DataSetRangesLength 成员也必须为零。

DataSetRangesLength

数据集范围块的长度(以字节为单位)。 值为零表示没有数据集范围块, DataSetRangesOffset 成员也必须为零。

备注

包含此结构的缓冲区的总长度必须至少 (sizeof(DEVICE_MANAGE_DATA_SET_ATTRIBUTES) + ParameterBlockLength + DataSetRangesLength)为 。

要求

   
最低受支持的客户端 Windows 7
最低受支持的服务器 Windows Server 2008 R2
标头 winioctl.h (包括 Windows.h)

另请参阅

DEVICE_DATA_SET_RANGE

设备管理 结构

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES