IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)

为设备对象创建空分区。 它可以在 EFI 磁盘或 MBR 磁盘上运行。 创建空磁盘所需的参数取决于要放入磁盘的分区表的类型。 有关详细信息,请参阅 CREATE_DISK

磁盘驱动程序枚举分区,就像它们是子设备一样。 因此,创建新分区时,磁盘类驱动程序会通过调用 IoInvalidateDeviceRelations 通知 PnP 管理器磁盘设备具有新的子设备 (分区) 。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp-AssociatedIrp.SystemBuffer> 中的缓冲区包含CREATE_DISK数据。

输入缓冲区长度

IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示提供给驱动程序的缓冲区的大小(以字节为单位),该缓冲区必须 >= sizeof (CREATE_DISK) 。 否则,驱动程序返回错误状态为STATUS_INFO_LENGTH_MISMATCH。

输出缓冲区

无。

输出缓冲区长度

无。

状态块

信息” 字段设置为零。 如果操作成功,“ 状态” 字段设置为STATUS_SUCCESS。 其他可能的状态值包括:如果不支持请求的分区样式,则STATUS_NOT_SUPPORTED;如果类驱动程序未能检索磁盘几何图形,STATUS_DEVICE_NOT_READY;如果类驱动程序未能获取必要的资源(如堆内存),则STATUS_INSUFFICIENT_RESOURCES。

要求

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

另请参阅

CREATE_DISK