次の方法で共有


IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES IOCTL (ntddstor.h)

この IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 要求は、データ セット管理要求をストレージ デバイスに送信するために使用されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

Irp-AssociatedIrp.SystemBuffer> のバッファーには、DEVICE_DSM_INPUT構造体が含まれています。 この構造体の Action メンバーによっては、入力バッファーにパラメーター ブロックとデータ セット範囲のブロックも含まれる場合があります。 考えられるすべてのアクションの説明については、「 DEVICE_DSM_ACTION 説明」を参照してください。

入力バッファーの長さ

IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、少なくとも sizeof(DEVICE_DSM_INPUT) である必要があります。

出力バッファー

DEVICE_DSM_INPUTの Action メンバーに設定されている値に応じて、要求は Irp-AssociatedIrp.SystemBuffer> のバッファー内のデータを返す場合があります。 DSM 操作が出力と Parameters.DeviceIoControl.OutputBufferLength> 0 を返す場合、システム バッファーには有効なDEVICE_DSM_OUTPUT データが含まれます。 アクションによっては、出力バッファーに出力ブロックも含まれる場合があります。

出力バッファーの長さ

出力バッファーの長さ (バイト単位)。 出力が返される場合、出力バッファーは少なくとも sizeof(DEVICE_DSM_OUTPUT) である必要があります。

ステータス ブロック

[状態] フィールドは、STATUS_SUCCESSに設定することも、場合によっては、STATUS_INVALID_DEVICE_REQUEST、STATUS_BUFFER_TOO_SMALL、STATUS_BUFFER_OVERFLOW、またはその他のエラー状態に設定することもできます。

注釈

記憶域ドライバー スタックによるメモリ プールの要件により、この IOCTL を含む IRP の完了は IRQL < DISPATCH_LEVELである必要があります。

詳細については、「 データ セット管理の概要 」を参照してください。

要件

要件
Header ntddstor.h (Ntddstor.h を含む)
IRQL IRQL < DISPATCH_LEVEL (「解説」セクションを参照)。

こちらもご覧ください

データ セット管理の概要

DEVICE_DSM_ACTION の説明

DEVICE_DSM_INPUT

DEVICE_DSM_OUTPUT