IoReadPartitionTable 関数 (ntddk.h)
IoReadPartitionTable ルーチンは廃止され、既存のドライバーをサポートするためにのみ提供されています。 新しいドライバーでは 、IoReadPartitionTableEx を使用する必要があります。 IoReadPartitionTable は 、指定したセクター サイズを持つディスク上のパーティションの一覧を読み取り、認識された各パーティションのパーティション 一覧にエントリを作成します。
構文
NTSTATUS IoReadPartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] BOOLEAN ReturnRecognizedPartitions,
[out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);
パラメーター
[in] DeviceObject
パーティションを読み取るディスクのデバイス オブジェクトへのポインター。
[in] SectorSize
ディスク上のセクターのサイズを指定します。
[in] ReturnRecognizedPartitions
認識されたパーティションのみ、またはすべてのパーティション エントリを返す必要があるかどうかを示します。
[out] PartitionBuffer
初期化されていないアドレスへのポインター。 成功した場合、 IoReadPartitionTable は非ページ プールからこのバッファーのメモリを割り当て、その中のドライブ レイアウト情報を返します。
戻り値
このルーチンは、少なくとも 1 つのセクター テーブルが読み取られた場合STATUS_SUCCESSの値を返します。 それ以外の場合は、エラー状態を返し、 PartitionBuffer のポインターを NULL に設定します。
注釈
IoReadPartitionTable は 、ディスク ドライバーでのみ使用する必要があります。 他のドライバーでは、代わりに IOCTL_DISK_GET_DRIVE_LAYOUT ディスク I/O 要求を使用する必要があります。
ディスク デバイス ドライバーは、ドライバーの初期化中にこのルーチンを呼び出します。
呼び出し元は、ExFreePool でこのルーチンによって割り当てられた PartitionBuffer の割り当てを解除する必要があります。
このルーチンで使用されるアルゴリズムは、ブール値 ReturnRecognizedPartitions によって決定されます。
- 各パーティション テーブルを読み取り、検出された有効なパーティションと認識されたパーティションごとに、PARTITION_INFORMATIONエントリの配列に 要素 を 入力します。 パーティション情報エントリの配列は、DRIVE_LAYOUT_INFORMATION構造体の PartitionEntry メンバーによって指されます。 DRIVE_LAYOUT_INFORMATION構造体は、 PartitionBuffer が指す場所にあります。 拡張パーティションは、他のパーティション テーブルを検索するために配置されますが、それらのエントリは作成されません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |