Функция IoReadPartitionTableEx (ntddk.h)

Подпрограмма IoReadPartitionTableEx считывает список секций на диске с указанным размером сектора и создает запись в списке секций для каждой распознанной секции.

Синтаксис

NTSTATUS IoReadPartitionTableEx(
  [in] PDEVICE_OBJECT               DeviceObject,
       _DRIVE_LAYOUT_INFORMATION_EX **DriveLayout
);

Параметры

[in] DeviceObject

Указатель на объект устройства для диска, секции которого должны считываться.

DriveLayout

Указатель на неинициализированный адрес. В случае успешного выполнения IoReadPartitionTableEx выделяет память для этого буфера из непагрегированного пула и возвращает сведения о макете диска.

Возвращаемое значение

Эта подпрограмма возвращает значение STATUS_SUCCESS, если была прочитана хотя бы одна таблица секторов. В противном случае он возвращает значение состояния ошибки и задает для указателя PartitionBufferзначение NULL.

Комментарии

IoReadPartitionTableEx должен использоваться только драйверами дисков. Другие драйверы должны использовать вместо этого запрос IOCTL_DISK_GET_DRIVE_LAYOUT_EX дискового ввода-вывода.

IoReadPartitionTableEx может считывать сведения о таблице секций с дисков GPT, а также с устаревших дисков главной загрузочной записи (MBR). Драйверы дискового устройства вызывают эту подпрограмму во время инициализации драйвера.

Вызывающий объект отвечает за освобождение объекта PartitionBuffer , выделенного этой подпрограммой, с помощью ExFreePool.

Обратите внимание, что драйверы дисков также возвращают и задают сведения о секции в ответ на запросы IRP_MJ_DEVICE_CONTROL со следующими кодами управления вводом-выводом:

IOCTL_DISK_GET_PARTITION_INFO_EX
IOCTL_DISK_SET_PARTITION_INFO_EX
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_SET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_DRIVE_GEOMETRY

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

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

DRIVE_LAYOUT_INFORMATION_EX

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO_EX

IOCTL_DISK_SET_DRIVE_LAYOUT_EX

IOCTL_DISK_SET_PARTITION_INFO_EX

IoSetPartitionInformation

IoWritePartitionTableEx

PARTITION_INFORMATION_EX