HalExamineMBR 関数 (ntddk.h)

HalExamineMBR ルーチンは、ディスクのマスター ブート レコード (MBR) を読み取り、MBR が呼び出し元によって指定された型の場合、MBR からデータを返します。

構文

void HalExamineMBR(
  [in]  PDEVICE_OBJECT DeviceObject,
  [in]  ULONG          SectorSize,
  [in]  ULONG          MBRTypeIdentifier,
  [out] PVOID          *Buffer
);

パラメーター

[in] DeviceObject

検査対象のデバイスのデバイス オブジェクトへのポインター。

[in] SectorSize

調査対象のデバイスから I/O 操作がフェッチできる最小バイト数。 この値が 512 未満の場合、 HalExamineMBR はパーティション テーブル全体を確実に読み取るために 512 バイトを読み取ります。

[in] MBRTypeIdentifier

MBR パーティションの種類識別子。 このパラメーターは、ディスク上にある可能性がある MBR の種類を指定します。 詳細については、「解説」を参照してください。

[out] Buffer

HalExamineMBR が MBR からのデータを含むバッファーへのポインターを書き込む場所へのポインター。 バッファーのレイアウトは、MBR パーティションの種類によって異なります。 HalExamineMBR は、このバッファーにストレージを割り当てます。 呼び出し元は、 ExFreePool ルーチンを呼び出すことによって、できるだけ早くこのバッファーの割り当てを解除する必要があります。

ディスクの MBR パーティションの種類が MBRTypeIdentifier で指定されたものと一致しない場合、またはエラーが発生した場合、HalExamineMBR は *Buffer = NULL を設定します。

戻り値

なし

解説

システム定義 MBR パーティション型識別子の一覧については、 PARTITION_INFORMATIONの表を参照してください。 これらの識別子は Ntdddisk.h ヘッダー ファイルで定義されています。

要件

要件
サポートされている最小のクライアント Windows XP 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

ExFreePool

PARTITION_INFORMATION