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 例程。

HalExamineMBR 设置 *Buffer = NULL 如果磁盘的 MBR 分区类型与 MBRTypeIdentifier 指定的磁盘类型不匹配,或者存在错误。

返回值

没有

言论

有关系统定义的 MBR 分区类型标识符的列表,请参阅 PARTITION_INFORMATION中的表。 这些标识符在 Ntdddisk.h 头文件中定义。

要求

要求 价值
最低支持的客户端 从 Windows XP 开始可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI、PowerIrpDDis

另请参阅

ExFreePool

PARTITION_INFORMATION