次の方法で共有


IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)

ディスク上の各パーティションのパーティション数、ディスク署名、および機能に関する情報を返します。 (フロッピー ドライバーはこの要求を処理する必要はありません)。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

何一つ。

入力バッファーの長さ

何一つ。

出力バッファー

ドライバーは、バッファー内の DRIVE_LAYOUT_INFORMATION_EX データ Irp->AssociatedIrp.SystemBufferを返します。

出力バッファーの長さ

IRP の I/O スタック位置の Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは、>= sizeof(DRIVE_LAYOUT_INFORMATION_EX) である必要があります。 この構造体には、PARTITION_INFORMATION_EX 要素の可変サイズの配列が含まれていることに注意してください。

必要な出力バッファーのサイズを決定するには、呼び出し元がこの IOCTL 要求をループで送信する必要があります。 ストレージ スタックが IOCTL を拒否し、バッファーが小さすぎることを示すエラー メッセージが表示されるたびに、呼び出し元はバッファー サイズを 2 倍にする必要があります。

状態ブロック

情報 フィールドは、返されたデータのサイズ (バイト単位) に設定されます。 状態 フィールドは、STATUS_SUCCESSに設定することも、場合によってはSTATUS_INFO_LENGTH_MISMATCH、STATUS_INSUFFICIENT_RESOURCES、またはSTATUS_BUFFER_TOO_SMALLに設定することもできます。

必要条件

要件 価値
ヘッダー ntdddisk.h (Ntdddisk.h を含む)

関連項目

DRIVE_LAYOUT_INFORMATION

PARTITION_INFORMATION

PARTITION_INFORMATION_EX