DEVICE_DSM_DEFINITION structure (ntddstor.h)

The DEVICE_DSM_DEFINITION structure contains the properties for a data set management (DSM) action.

Syntax

typedef struct _DEVICE_DSM_DEFINITION {
  DEVICE_DSM_ACTION Action;
  BOOLEAN           SingleRange;
  ULONG             ParameterBlockAlignment;
  ULONG             ParameterBlockLength;
  BOOLEAN           HasOutput;
  ULONG             OutputBlockAlignment;
  ULONG             OutputBlockLength;
} DEVICE_DSM_DEFINITION, *PDEVICE_DSM_DEFINITION;

Members

Action

DeviceDsmDefinition_Xxx value that specifies the action to be performed. See DEVICE_DSM_ACTION Descriptions for a list of action values and their associated definition values. These values are defined in ntddstor.h.

SingleRange

Specifies whether the DSM action supports only a single range at a time. If the DSM action is to be performed on the entire data set range, the flag DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE is set.

ParameterBlockAlignment

The alignment for the parameter block within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.

ParameterBlockLength

The length, in bytes, of the parameter block within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request. The parameter block will follow the DSM_DEVICE_INPUT structure. If ParameterBlockLength is set to zero, then the parameter block does not exist.

HasOutput

Set TRUE if the action specified in the Action member will return output; otherwise, set this to FALSE.

OutputBlockAlignment

The alignment for the output block within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request.

OutputBlockLength

Specifies the length, in bytes, of the output block within the payload of the IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request. The output block follows the DSM_DEVICE_OUTPUT structure. If OutputBlockLength is set to zero, then the output block does not exist.

Remarks

Each DSM action has a definition associated with it. For example, DeviceDsmAction_Trim has DeviceDsmDefinition_Trim as its associated definition. The DSM sender or handler allocates and initializes the DEVICE_DSM_DEFINITION structure with the appropriate definition. They then pass the pointer to this structure to all DSM-related functions that need it.

See Data Set Management Overview for information on how a DSM is processed.

Requirements

Requirement Value
Header ntddstor.h

See also

Data Set Management Overview

DEVICE_DSM_ACTION Descriptions

DSM_DEVICE_INPUT

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES