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 要求を使用する必要があります。
ディスク デバイス ドライバーは、ドライバーの初期化中にこのルーチンを呼び出します。
呼び出し元は、このルーチンによって割り当てられた PartitionBuffer の割り当てを ExFreePool 解除する必要があります。
このルーチンで使用されるアルゴリズムは、ReturnRecognizedPartitions ブール値によって決定されます。
- 各パーティション テーブルを読み取り、検出された有効なパーティションと認識されるパーティションごとに、PARTITION_INFORMATION エントリの配列内の要素を入力します。 パーティション情報エントリの配列は、DRIVE_LAYOUT_INFORMATION 構造体の PartitionEntry メンバーによって指されます。 DRIVE_LAYOUT_INFORMATION構造体は、PartitionBuffer によって指位置にあります。 拡張パーティションは、他のパーティション テーブルを検索するために配置されますが、それらのエントリは作成されません。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntddk.h (Ntddk.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |
関連項目
IoSetPartitionInformation の
IoWritePartitionTable の