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 フラグ (最上位ビット) が Actionで設定されている場合、指定されたアクションは非破壊的です。 非破壊的アクションの場合、ドライバーは、指定されたアクションを処理しない場合でも、IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求をスタック内の次の下位ドライバーに安全に転送できます。 ドライバーが DSM を処理する場合は、IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES要求を次の下位ドライバーに転送する前に、DataSetRangesOffset および DataSetRangesLength メンバーによって指定されたデータ セット範囲ブロックの通常の処理を実行する必要があります。
Flags
これらのフラグは、すべてのコントロール アクションに対してグローバルです。 このメンバーは、次のいずれかのフラグに設定できます。
フラグ値 | 意味 |
---|---|
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE | 制御アクションは、データ・セット範囲のブロック全体に対して指定されます。 このフラグを設定する場合は、dataSetRangesOffset および dataSetRangesLength メンバー を 0 に設定する必要があります。 |
ParameterBlockOffset
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求のペイロード内のパラメーター ブロックの開始を指定します。 パラメーター ブロックの形式は、Action メンバーの値によって異なります。 パラメーター ブロック形式の詳細については、「DEVICE_DSM_ACTION 説明を参照してください。 メモ: パラメーター ブロックのオフセットは、対応するパラメーターのアドレス境界に配置する必要があります。
ParameterBlockOffset 0 に設定されている場合、パラメーター ブロックは存在しません。
ParameterBlockLength
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES要求のペイロード内のパラメーター ブロックの長さをバイト単位で指定します。
ParameterBlockLength が 0 に設定されている場合、パラメーター ブロックは存在しません。
DataSetRangesOffset
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES要求のペイロード内のデータ セット範囲のブロックの開始を指定します。 このブロックは、DEVICE_DSM_RANGE 構造体として書式設定された 1 つ以上の連続したエントリで構成されます。 メモ: データ セット範囲ブロックのオフセットは、DEVICE_DSM_RANGE構造体のアドレス境界に配置する必要があります。
ゼロに設定すると、データ・セット範囲のブロックは存在しません。
DataSetRangesLength
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES要求のペイロード内のデータ セット範囲のブロックの長さをバイト単位で指定します。 DataSetRangesLength が 0 に設定されている場合、データ セット範囲のブロックは存在しません。
備考
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求のペイロードの形式の詳細については、「データセット管理の概要」を参照してください。 バッファーの合計サイズは、少なくとも sizeof(DEVICE_DSM_INPUT) + ParameterBlockLength + DataSetRangesLength
する必要があります。
データ セット範囲のブロックは、DataSetRangesOffset および DataSetRangesLength メンバー 指定されます。 このブロックが存在する場合は、連続した DEVICE_DSM_RANGE 構造が含まれます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddstor.h (Ntddstor.h を含む) |