次の方法で共有


IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL (ntddvol.h)

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

ドライバーは、少なくとも sizeof(VOLUME_DISK_EXTENTS) である必要がある Irp-AssociatedIrp.SystemBuffer> のバッファー内のVOLUME_DISK_EXTENTS構造体を返します。

出力バッファーの長さ

VOLUME_DISK_EXTENTS構造体の長さ。

ステータス ブロック

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

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

要件

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

こちらもご覧ください

DISK_EXTENT

VOLUME_DISK_EXTENTS