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) |