DEVICE_MANAGE_DATA_SET_ATTRIBUTES structure

The DEVICE_MANAGE_DATA_SET_ATTRIBUTES structure specifies a management action for the data-set attributes for a device.

The management action is specified in the DEVICE_MANAGE_DATA_SET_ATTRIBUTES structure that is contained in the system buffer of an IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.

Syntax


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

Members

Size

Contains the size of the structure DEVICE_MANAGE_DATA_SET_ATTRIBUTES. The value of this member will change as members are added to the structure.

Action

The action to be performed as specified by a DEVICE_DATA_MANAGEMENT_SET_ACTION enumeration value.

Starting with Windows 7, this value can be a bitwise OR of one or more of the following flags:

ValueMeaning
DeviceDsmActionFlag_NonDestructive

The specified action is non-destructive. If this flag is set, the driver can safely forward the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request to the next lower driver in the stack even if the driver does not handle the specified action.

Note  Before it forwards the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request, the driver should still perform the normal processing of the data set ranges block that is specified by the DataSetRangesOffset and DataSetRangesLength members.
 

 

Flags

These flags are global to all control actions. The following flags can be set in the Flags member:

ValueMeaning
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE

Specifies that the control action is specified for the entire block of data set ranges. If this flag is set, the DataSetRangesOffset and DataSetRangesLength members must be set to zero.

 

ParameterBlockOffset

Specifies the start of the parameter block within the system buffer of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request. The format of the parameter block depends on the value of the Action member. For more information, see DEVICE_DATA_MANAGEMENT_SET_ACTION.

Note  The offset of the parameter block must be aligned on the address boundary of the corresponding parameter structure.
 

If set to zero, then the parameter block does not exist.

ParameterBlockLength

Specifies the length, in bytes, of the parameter block within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.

If set to zero, then the parameter block does not exist.

DataSetRangesOffset

Specifies the start of the block of data set ranges within the system buffer of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request. This block consists of one or more contiguous entries that are formatted as DEVICE_DATA_SET_RANGE structures.

Note  The offset of the data set range block must be aligned on the address boundary of the DEVICE_DATA_SET_RANGE structure.
 

If set to zero, then the block of data set ranges does not exist.

DataSetRangesLength

Specifies the length, in bytes, of the block of data set ranges within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.

If set to zero, then the block of data set ranges does not exist.

Remarks

The block of data set ranges is specified by the DataSetRangesOffset and DataSetRangesLength members. If this block exists, it contains contiguous DEVICE_DATA_SET_RANGE structures. The total size of the buffer should be at least:

sizeof(DEVICE_MANAGE_DATA_SET_ATTRIBUTES) + ParameterBlockLength + DataSetRangesLength

Requirements

Header

Ntddstor.h (include Ntddstor.h)

See also

DEVICE_DATA_MANAGEMENT_SET_ACTION
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES

 

 

Send comments about this topic to Microsoft

Show: