Функция 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) |
См. также раздел
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_PARTITION_INFO_EX
IOCTL_DISK_SET_DRIVE_LAYOUT_EX