IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)
为设备对象创建空分区。 它可以在 EFI 磁盘或 MBR 磁盘上运行。 创建空磁盘所需的参数取决于要放入磁盘的分区表的类型。 有关详细信息,请参阅 CREATE_DISK。
磁盘驱动程序枚举分区,就像它们是子设备一样。 因此,创建新分区时,磁盘类驱动程序通过调用 IoInvalidateDeviceRelations 通知 PnP 管理器, 磁盘设备具有新的子设备(分区)。
主要代码
输入缓冲区
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) |