Поделиться через


IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)

Возвращает сведения о количестве секций, сигнатуре диска и функциях каждой секции на диске. (Драйверы Floppy не должны обрабатывать этот запрос.)

Основной код

IRP_MJ_DEVICE_CONTROL

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

Никакой.

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

Никакой.

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

Драйвер возвращает данные DRIVE_LAYOUT_INFORMATION_EX в буфере в Irp->AssociatedIrp.SystemBuffer.

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

Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода iRP указывает размер буфера в байтах, который должен быть >= размер(DRIVE_LAYOUT_INFORMATION_EX). Обратите внимание, что эта структура содержит массив PARTITION_INFORMATION_EX элементов переменной размера.

Чтобы определить необходимый размер буфера вывода, вызывающий объект должен отправить этот запрос IOCTL в цикле. Каждый раз, когда стек хранилища отклоняет IOCTL с сообщением об ошибке, указывающее, что буфер слишком мал, вызывающий объект должен удвоить размер буфера.

Блок состояния

Поле сведений имеет размер в байтах возвращаемых данных. Поле состояния можно задать для STATUS_SUCCESS или, возможно, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES или STATUS_BUFFER_TOO_SMALL.

Требования

Требование Ценность
заголовка ntdddisk.h (include Ntdddisk.h)

См. также

DRIVE_LAYOUT_INFORMATION

PARTITION_INFORMATION

PARTITION_INFORMATION_EX