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。

要求

要求 价值
标头 ntdddisk.h (包括 Ntdddisk.h)

另请参阅

CREATE_DISK