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