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 例程。
HalExamineMBR 设置 *Buffer = NULL 如果磁盘的 MBR 分区类型与 MBRTypeIdentifier 指定的磁盘类型不匹配,或者存在错误。
返回值
没有
言论
有关系统定义的 MBR 分区类型标识符的列表,请参阅 PARTITION_INFORMATION中的表。 这些标识符在 Ntdddisk.h 头文件中定义。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows XP 开始可用。 |
目标平台 | 普遍 |
标头 | ntddk.h (包括 Ntddk.h) |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |