IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)
Создает пустую секцию для объекта устройства. Он может работать с диском EFI или диском MBR. Параметры, необходимые для создания пустого диска, зависят от типа таблицы секций, которая будет помещена на диск. Дополнительные сведения см. в разделе CREATE_DISK.
Драйверы дисков перечисляют секции так, как если бы они были дочерними устройствами. Таким образом, при создании новой секции драйвер класса дисков уведомляет диспетчер PnP с помощью вызова IoInvalidateDeviceRelations о том, что у дискового устройства есть новое дочернее устройство (раздел).
Основной код
Входной буфер
Буфер в 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) |