IoReadPartitionTableEx 函数 (ntddk.h)

IoReadPartitionTableEx 例程读取具有指定扇区大小的磁盘上的分区列表,并在分区列表中为每个已识别的分区创建一个条目。

语法

NTSTATUS IoReadPartitionTableEx(
  [in] PDEVICE_OBJECT               DeviceObject,
       _DRIVE_LAYOUT_INFORMATION_EX **DriveLayout
);

参数

[in] DeviceObject

指向要读取其分区的磁盘的设备对象的指针。

DriveLayout

指向未初始化地址的指针。 如果成功, IoReadPartitionTableEx 将从非分页池中为此缓冲区分配内存,并返回其中驱动器布局信息。

返回值

如果读取了至少一个扇区表,此例程将返回值 STATUS_SUCCESS。 否则,它将返回错误状态值并将 PartitionBuffer 处的指针设置为 NULL

注解

IoReadPartitionTableEx 只能由磁盘驱动程序使用。 其他驱动程序应改用 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 磁盘 I/O 请求。

IoReadPartitionTableEx 能够从 GUID 分区表 (GPT) 磁盘以及旧版主启动记录 (MBR) 磁盘读取分区表信息。 磁盘设备驱动程序在驱动程序初始化期间调用此例程。

调用方负责解除分配此例程使用 ExFreePool 分配的 PartitionBuffer

请注意,磁盘驱动程序还会返回并设置分区信息,以响应具有以下 I/O 控制代码的IRP_MJ_DEVICE_CONTROL请求:

IOCTL_DISK_GET_PARTITION_INFO_EX
IOCTL_DISK_SET_PARTITION_INFO_EX
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_SET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_DRIVE_GEOMETRY

要求

要求
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

DRIVE_LAYOUT_INFORMATION_EX

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO_EX

IOCTL_DISK_SET_DRIVE_LAYOUT_EX

IOCTL_DISK_SET_PARTITION_INFO_EX

IoSetPartitionInformation

IoWritePartitionTableEx

PARTITION_INFORMATION_EX