IOCTL_VOLUME_READ_PLEX IOCTL (ntddvol.h)
ボリュームの特定の プレックス に対して読み取りを実行します。 すべてのプレックスは同一であるため、ボリューム・マネージャーは、通常の読み取り操作中にボリュームの任意のプレックスからデータを取得できます。 ボリューム・マネージャーは、物理メディアの入出力負荷のバランスを取り、読み取りパフォーマンスを最大化するために、ボリュームのプレックス間で読み取りを分散します。
ただし、アプリケーションまたはカーネル モード コンポーネントで、ボリューム マネージャーがデータを選択するのではなく、特定のプレックスからデータを読み取る必要がある場合は、この IOCTL を使用してこれを行うことができます。
メジャー コード
[入力バッファー]
呼び出し元は、論理オフセットを含むVOLUME_READ_PLEX_INPUT構造体を Irp-AssociatedIrp.SystemBuffer> のバッファーの先頭に挿入します。
入力バッファーの長さ
IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength は、入力バッファーのサイズ (バイト単位) を示します。これは sizeof(VOLUME_READ_PLEX_INPUT) の値以上である必要があります。出力バッファー
IRP_MJ_READと同様に、この IOCTL は、メモリ記述子リスト (MDL) として渡されたメモリ バッファーの Irp-MdlAddress> フィールドに読み取りデータを格納します。
出力バッファーの長さ
バッファーの長さ。
ステータス ブロック
操作が成功した場合、ボリューム・マネージャーは 「状況」 フィールドをSTATUS_SUCCESSに設定します。
Irp-AssociatedIrp.SystemBuffer の>VOLUME_READ_PLEX_INPUT構造体には、512 バイトの境界に配置する必要がある Length メンバーがあります。 Length に適切なアラインメントがない場合、操作は失敗し、ボリューム マネージャーは [状態] フィールドをVKE_EINVALに設定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP 以降で使用できます。 |
Header | ntddvol.h (Ntddvol.h を含む) |