// ntddstor.h
typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {
ULONG Size;
DEVICE_DSM_ACTION Action;
ULONG Flags;
ULONG OperationStatus;
ULONG ExtendedError;
ULONG TargetDetailedError;
ULONG ReservedStatus;
ULONG OutputBlockOffset;
ULONG OutputBlockLength;
} DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, DEVICE_DSM_OUTPUT, *PDEVICE_DSM_OUTPUT;
View the official Windows Driver Kit DDI reference// winioctl.h
typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {
DWORD Size;
DEVICE_DSM_ACTION Action;
DWORD Flags;
DWORD OperationStatus;
DWORD ExtendedError;
DWORD TargetDetailedError;
DWORD ReservedStatus;
DWORD OutputBlockOffset;
DWORD OutputBlockLength;
} DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, DEVICE_DSM_OUTPUT, *PDEVICE_DSM_OUTPUT;
View the official Win32 API referenceNo description available.
The DEVICE_DSM_OUTPUT (or DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT) structure describes output for IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES requests for some data set management actions.
SizeSize of this structure, in bytes. Set this member to sizeof(DEVICE_DSM_OUTPUT).
ActionDEVICE_DSM_ACTION value that specifies the action related to the instance of this structure. See DEVICE_DSM_ACTION Descriptions for a list of values and action descriptions.
FlagsFlags for the data set management action. See the Flags member of IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES.
OperationStatusStatus resulting from the operation performed for Action.
ExtendedErrorAn extended error value originating from Windows or a driver.
TargetDetailedErrorAn error value resulting from a failure execute the operation for Action at the target.
ReservedStatusReserved.
OutputBlockOffsetThe position, after the beginning of this structure, where action-specific data is located.
OutputBlockLengthThe length of the action-specific data, in bytes.
Depending on the value of Action, an output block is written at an offset of OutputBlockOffset after the beginning of this structure. The size of the output block is specified in OutputBlockLength.
DEVICE_DSM_ACTION Descriptions
DEVICE_DATA_SET_LB_PROVISIONING_STATE
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES
Output structure for the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES control code.
SizeSize of the structure. This is set to
sizeof(DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT).
ActionThe action related to the instance of this structure. This is a value for the DEVICE_DATA_MANAGEMENT_SET_ACTION data type.
| Value | Meaning | |
|---|---|---|
| DeviceDsmAction_Trim 1 |
A trim action is performed. This value is not supported for user-mode applications. | |
| DeviceDsmAction_Notification 2 |
DeviceDsmActionFlag_NonDestructive (0x80000002) | A notification action is performed. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. |
| DeviceDsmAction_OffloadRead 3 |
DeviceDsmActionFlag_NonDestructive (0x80000003) | An offload read action is performed. The output described by the OutputBlockOffset and OutputBlockLength members is a STORAGE_OFFLOAD_READ_OUTPUT structure. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. |
| DeviceDsmAction_OffloadWrite 4 |
An offload write action is performed. The output described by the OutputBlockOffset and OutputBlockLength members is a STORAGE_OFFLOAD_WRITE_OUTPUT structure. | |
| DeviceDsmAction_Allocation 5 |
DeviceDsmActionFlag_NonDestructive (0x80000005) | An allocation bitmap is returned for the first data set range passed in. The output is in a DEVICE_DATA_SET_LB_PROVISIONING_STATE structure. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. |
| DeviceDsmAction_Repair 6 |
DeviceDsmActionFlag_NonDestructive (0x80000006) | A repair action is performed. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. Windows 7 and Windows Server 2008 R2: This value is not supported before Windows 8 and Windows Server 2012. |
| DeviceDsmAction_Scrub 7 |
DeviceDsmActionFlag_NonDestructive (0x80000007) | A scrub action is performed. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. Windows 7 and Windows Server 2008 R2: This value is not supported before Windows 8 and Windows Server 2012. |
| DeviceDsmAction_Resiliency 8 |
DeviceDsmActionFlag_NonDestructive (0x80000008) | A resiliency action is performed. The DeviceDsmActionFlag_NonDestructive (0x80000000) is a bit flag to indicate to the driver stack that this operation is non-destructive. Windows 7 and Windows Server 2008 R2: This value is not supported before Windows 8 and Windows Server 2012. |
FlagsNot used.
OperationStatusNot used.
ExtendedErrorExtended error information.
TargetDetailedErrorTarget specific error.
ReservedStatusReserved.
OutputBlockOffsetThe offset, in bytes, from the beginning of this structure to where any action-specific data is located.
OutputBlockLengthThe length, in bytes, of the action-specific data.
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES