IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
返回有关物理磁盘几何图形的信息(介质类型、缸数、每个柱形图的轨迹、每个轨道的扇区数和每个扇区的字节数)。
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX与较旧的 IOCTL_DISK_GET_DRIVE_GEOMETRY 请求之间的区别在于,IOCTL_DISK_GET_DRIVE_GEOMETRY_EX可以从主启动记录(MBR)和 GUID 分区表(GPT)类型的分区媒体检索信息,而IOCTL_DISK_GET_DRIVE_GEOMETRY只能读取 MBR 样式的媒体。
主要代码
输入缓冲区
没有。
输入缓冲区长度
没有。
输出缓冲区
驱动程序在 Irp->AssociatedIrp.SystemBuffer处返回缓冲区中的 DISK_GEOMETRY_EX 数据。 输出缓冲区的大小可能与输入缓冲区的大小不同。
输出缓冲区长度
状态块
信息 字段设置为返回的数据的大小(以字节为单位)。
状态 字段返回以下值之一:
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
言论
只有上述调用方 Partmgr.sys 才能调用此 IOCTL,因为它包含磁盘分区信息。
此 IOCTL 使用 IOCTL_DISK_GET_DRIVE_GEOMETRY 获取 DISK_GEOMETRY 结构和 IOCTL_DISK_GET_LENGTH_INFO 来获取 GET_LENGTH_INFORMATION 结构。 这两个 IOCTL 都支持在 disk.sys 级别使用。
要求
要求 | 价值 |
---|---|
标头 | ntdddisk.h (包括 Ntdddisk.h) |