IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)

Создает пустую секцию для объекта устройства. Он может работать с диском EFI или диском MBR. Параметры, необходимые для создания пустого диска, зависят от типа таблицы секций, которая будет помещена на диск. Дополнительные сведения см. в разделе CREATE_DISK.

Драйверы дисков перечисляют секции так, как если бы они были дочерними устройствами. Таким образом, при создании новой секции драйвер класса дисков уведомляет диспетчер PnP с помощью вызова IoInvalidateDeviceRelations о том, что у дискового устройства есть новое дочернее устройство (раздел).

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Буфер в Irp-AssociatedIrp.SystemBuffer> содержит данные CREATE_DISK.

Длина входного буфера

Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер буфера в байтах, доступного драйверу, который должен быть >= 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