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 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

ExFreePool

PARTITION_INFORMATION