次の方法で共有


IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL (ntddvol.h)

1 つ以上のディスク上のボリュームの物理的な場所を返します。 エクステントは最初は作成された順序で格納されますが、ミラーの再ミラー化、分割、または中断、またはディザスター リカバリー中に実行されるアクションは、ディスク エクステントの順序に影響する可能性があります。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

何一つ。

入力バッファーの長さ

何一つ。

出力バッファー

ドライバーは、バッファー内のVOLUME_DISK_EXTENTS構造体 Irp->AssociatedIrp.SystemBufferを返します。これは、の sizeof (VOLUME_DISK_EXTENTS) 以上である必要があります

出力バッファーの長さ

VOLUME_DISK_EXTENTS構造体の長さ。

状態ブロック

ドライバーは、次のように Irp->IoStatus.Information 状態 フィールド 設定します。

  • Irp->AssociatedIrp.SystemBuffer のバッファーが sizeof(VOLUME_DISK_EXTENTS) < 場合、ドライバーは Irp->IoStatus.Information を 0 に設定し、STATUS_INVALID_PARAMETERを返します。
  • Irp->AssociatedIrp.SystemBuffer のバッファーが少なくとも sizeof(VOLUME_DISK_EXTENTS) であるが、すべてのデータを返すには小さすぎる場合、ドライバーは Irp->IoStatus.Information sizeof(VOLUME_DISK_EXTENTS) に 設定し、状態 をSTATUS_BUFFER_OVERFLOWに設定します。
  • Irp->AssociatedIrp.SystemBuffer のバッファーが、すべてのデータが返されるのに十分な大きさである場合、 ドライバー Irp->IoStatus.Informationsizeof(VOLUME_DISK_EXTENTS) + ((NumberOfDiskExtents - 1) * sizeof(DISK_EXTENT)) に設定し、状態 をSTATUS_SUCCESSに設定します。

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows 2000 では固定ディスク上のボリュームに使用できますが、リムーバブル メディア上のボリュームでは使用できません。 Microsoft Windows 2000 SP4 および Windows XP SP1 のリムーバブル メディアで使用できます。
ヘッダー ntddvol.h (Ntddvol.h を含む)

関連項目

DISK_EXTENT

VOLUME_DISK_EXTENTS