IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL (ntdddisk.h)
Возвращает сведения о количестве секций, сигнатуре диска и функциях каждой секции на диске. (Драйверы гибких дисков не должны обрабатывать этот запрос.)
Основной код
Входной буфер
Нет.
Длина входного буфера
Нет.
Выходной буфер
Драйвер возвращает данные 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) |