IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)

返回有关磁盘上每个分区的分区数、磁盘签名和功能的信息。 (软盘驱动程序不需要处理此请求。)

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

无。

输入缓冲区长度

无。

输出缓冲区

驱动程序在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区中返回DRIVE_LAYOUT_INFORMATION_EX数据。

输出缓冲区长度

IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 指示缓冲区的大小(以字节为单位),该大小必须 >= sizeof (DRIVE_LAYOUT_INFORMATION_EX) 。 请注意,此结构包含 PARTITION_INFORMATION_EX 元素的可变大小数组。

若要确定所需的输出缓冲区的大小,调用方应在循环中发送此 IOCTL 请求。 每次存储堆栈拒绝 IOCTL 并显示一条指示缓冲区太小的错误消息时,调用方应将缓冲区大小加倍。

状态块

信息” 字段设置为返回的数据的大小(以字节为单位)。 “ 状态” 字段可以设置为STATUS_SUCCESS,也可以设置为STATUS_INFO_LENGTH_MISMATCH、STATUS_INSUFFICIENT_RESOURCES或STATUS_BUFFER_TOO_SMALL。

要求

要求
Header ntdddisk.h (包括 Ntdddisk.h)

另请参阅

DRIVE_LAYOUT_INFORMATION

PARTITION_INFORMATION

PARTITION_INFORMATION_EX