IOCTL_VOLUME_LOGICAL_TO_PHYSICAL IOCTL (ntddvol.h)
指定されたボリューム論理オフセットの物理オフセットと物理ディスク番号を返します。
たとえば、2 つの プレックス を持つミラー化ボリューム内の論理ボリューム オフセットは、ミラーに参加している 2 つのディスクのそれぞれに 1 つずつ、2 つの物理オフセットに対応します。 この IOCTL に応答して、ボリューム・マネージャーは論理ボリューム・オフセットの 2 つの物理オフセットと 2 つの物理ディスク番号を戻します。
ボリューム・マネージャーは、すべてのタイプの基本ボリュームおよび動的ボリュームに対してこの IOCTL をサポートします。
メジャー コード
入力バッファー
呼び出し元は、バッファーの先頭にある論理オフセットを含む VOLUME_LOGICAL_OFFSET 構造体 Irp->AssociatedIrp.SystemBufferを挿入します。
入力バッファーの長さ
IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength は、入力バッファーのサイズ (バイト単位) を示します。これは、sizeof(VOLUME_LOGICAL_OFFSET) の値以上である必要があります。出力バッファー
出力バッファーのサイズは、構造体 VOLUME_PHYSICAL_OFFSETSを保持するのに十分な大きさである必要があります。このサイズには、VOLUME_PHYSICAL_OFFSET型の構造体の可変長配列が含まれます。
ボリューム マネージャーは、バッファーの先頭にある VOLUME_PHYSICAL_OFFSETS 構造体の 1 つ以上の物理オフセットとディスク番号を返します。Irp->AssociatedIrp.SystemBuffer します。
出力バッファーの長さ
IRP の I/O スタック位置の Parameters.DeviceIoControl.OutputBufferLength は、出力バッファーのサイズ (バイト単位) を示します。
状態ブロック
操作が成功した場合、Status メンバーは STATUS_SUCCESS に設定されます。 それ以外の場合、Status メンバーは適切なエラー コードに設定されます。 考えられるエラー コードは次のとおりです。
STATUS_BUFFER_TOO_SMALL
出力バッファーが小さすぎます。 ボリューム マネージャーは、Irp->IoStatus.Information メンバーを、呼び出し元が指定する必要がある出力バッファーのサイズに設定します。
STATUS_INVALID_PARAMETER
入力バッファーが小さすぎます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP 以降で使用できます。 |
ヘッダー | ntddvol.h (Ntddvol.h を含む) |