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)磁盘读取分区表信息。 磁盘设备驱动程序在驱动程序初始化期间调用此例程。
调用方负责解除分配此例程分配的 PartitionBuffer,ExFreePool。
请注意,磁盘驱动程序还返回并设置分区信息,以响应具有以下 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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |
另请参阅
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_PARTITION_INFO_EX
IOCTL_DISK_SET_DRIVE_LAYOUT_EX