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


IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

Нет.

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

Нет.

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

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

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

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

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

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

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

Требования

Требование Значение
Заголовок ntdddisk.h (включая Ntdddisk.h)

См. также раздел

DRIVE_LAYOUT_INFORMATION

PARTITION_INFORMATION

PARTITION_INFORMATION_EX