IOCTL_VOLUME_LOGICAL_TO_PHYSICAL IOCTL (ntddvol.h)

指定されたボリューム論理オフセットの物理オフセットと物理ディスク番号を返します。

たとえば、2 つのプレックスを持つミラー化されたボリューム内の論理ボリューム オフセットは2 つの物理オフセットに対応し、2 つのディスクのそれぞれに 1 つはミラーに参加します。 この IOCTL に応答して、ボリューム・マネージャーは論理ボリューム・オフセットに対して 2 つの物理オフセットと 2 つの物理ディスク番号を戻します。

ボリューム・マネージャーは、すべてのタイプの基本ボリュームおよび動的ボリュームに対してこの IOCTL をサポートします。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

呼び出し元は、Irp-AssociatedIrp.SystemBuffer> のバッファーの先頭に論理オフセットを含むVOLUME_LOGICAL_OFFSET構造体を挿入します。

入力バッファーの長さ

IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength は、入力バッファーのサイズ (バイト単位) を示します。これは sizeof(VOLUME_LOGICAL_OFFSET) の値以上である必要があります。

出力バッファー

出力バッファー のサイズは、VOLUME_PHYSICAL_OFFSET型の構造体の可変長配列を含む構造体VOLUME_PHYSICAL_OFFSETSを保持するのに十分な大きさである必要があります。

ボリューム マネージャーは、バッファーの先頭にある irp-AssociatedIrp.SystemBuffer> で、VOLUME_PHYSICAL_OFFSETS構造体内の 1 つ以上の物理オフセットとディスク番号を返します。

出力バッファーの長さ

IRP の I/O スタック位置の Parameters.DeviceIoControl.OutputBufferLength は、出力バッファーのサイズ (バイト単位) を示します。

ステータス ブロック

操作が成功した場合、 Status メンバーは STATUS_SUCCESS に設定されます。 それ以外の場合、 Status メンバーは適切なエラー コードに設定されます。 考えられるエラー コードは次のとおりです。

STATUS_BUFFER_TOO_SMALL

出力バッファーが小さすぎます。 ボリューム マネージャーは、Irp-IoStatus.Information> メンバーを、呼び出し元が指定する必要がある出力バッファーのサイズに設定します。

STATUS_INVALID_PARAMETER

入力バッファーが小さすぎます。

要件

要件
サポートされている最小のクライアント Windows XP 以降で使用できます。
Header ntddvol.h (Ntddvol.h を含む)

こちらもご覧ください

IOCTL_VOLUME_PHYSICAL_TO_LOGICAL

VOLUME_LOGICAL_OFFSET

VOLUME_PHYSICAL_OFFSET

VOLUME_PHYSICAL_OFFSETS