pHalExamineMBR 回调函数 (ntddk.h)

HalExamineMBR 例程读取磁盘 (MBR) 的主启动记录,如果 MBR 属于调用方指定的类型,则从 MBR 返回数据。

语法

pHalExamineMBR Phalexaminembr;

void Phalexaminembr(
  [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、PowerIrpDDis

另请参阅

ExFreePool

PARTITION_INFORMATION