次の方法で共有


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 を含む)

関連項目

データセット管理の概要

DEVICE_DSM_ACTION 説明

DEVICE_DSM_RANGE

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES