IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)
返回有关磁盘上每个分区的分区数、磁盘签名和功能的信息。 (软盘驱动程序不需要处理此请求。)
主要代码
输入缓冲区
无。
输入缓冲区长度
无。
输出缓冲区
驱动程序在 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) |