Функция IoSetPartitionInformation (ntddk.h)
Подпрограмма IoSetPartitionInformation устарела и предоставляется только для поддержки существующих драйверов. Новые драйверы должны использовать IoSetPartitionInformationEx.
IoSetPartitionInformation задает тип секции и номер в записи таблицы секций для диска, представленного DeviceObject.
Синтаксис
NTSTATUS IoSetPartitionInformation(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] ULONG PartitionNumber,
[in] ULONG PartitionType
);
Параметры
[in] DeviceObject
Указатель на объект устройства, представляющий устройство, на котором должен быть задан тип секции.
[in] SectorSize
Задает размер в байтах секторов на диске.
[in] PartitionNumber
Указывает номер секции на устройстве, тип секции которого необходимо задать.
[in] PartitionType
Указывает тип для секции. Список некоторых типов ключевых разделов см. в PARTITION_INFORMATION.
Возвращаемое значение
Если IoSetPartitionInformation возвращает STATUS_SUCCESS, драйвер диска обновляет свое представление о типе секции для этой секции в расширении устройства.
Замечания
IoSetPartitionInformation должны использоваться только драйверами дисков. Другие драйверы должны использовать вместо этого запрос ввода-вывода IOCTL_DISK_SET_PARTITION_INFO диска.
Эта подпрограмма вызывается, когда драйвер дискового устройства запрашивает задать тип секции в записи таблицы секций IRP_MJ_DEVICE_CONTROL запросом. Обычно этот запрос выдает программа форматирования, которая выполняет функции управления ввода-выводами в секции. Драйвер передает указатель на объект устройства, представляющий физический диск, и количество секций, связанных с объектом устройства, открытым служебной программой форматирования. Так как подпрограммы HAL, лежащие в основе IoSetPartitionInformation, были разработаны до реализации поддержки динамического секционирования, они не различают порядковые секции (то есть порядок секции на диске) и номер секции номер секции (номер секции, назначенный секции для идентификации системы). Драйверы должны вызывать IoSetPartitionInformation с использованием порядкового номера секции, а не фактического номера секции.
Эта подпрограмма синхронна и должна вызываться подпрограммой диспетчера диска или потоком драйвера. Таким образом, все потоки пользовательской и файловой системы должны быть готовы ввести состояние ожидания при выдаче запроса на управление устройством, чтобы задать тип секции для устройства.
Эта подпрограмма работает при предположении, что номер секции, переданный драйвером диска, фактически существует.
Эта подпрограмма должна вызываться в IRQL = PASSIVE_LEVEL так как она использует объект события ядра для синхронизации завершения ввода-вывода на устройстве. Событие не может быть задано в состоянии Signaled без очереди и выполнения специальной процедуры APC системы ввода-вывода для завершения ввода-вывода.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
правил соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |