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


IOCTL_VOLUME_LOGICAL_TO_PHYSICAL IOCTL (ntddvol.h)

Возвращает физические смещения и номера физических дисков для заданного логического смещения тома.

Например, логическое смещение тома внутри зеркального тома с двумя плексами соответствует двум физическим смещениям, по одному на каждом из двух дисков, участвующих в зеркало. В ответ на это IOCTL диспетчер томов возвращает два физических смещения и два номера физических дисков для смещения логического тома.

Диспетчер томов поддерживает этот IOCTL для всех типов базовых и динамических томов.

Основной код

IRP_MJ_DEVICE_CONTROL

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

Вызывающий объект вставляет структуру VOLUME_LOGICAL_OFFSET, содержащую логическое смещение в начале буфера в Irp-AssociatedIrp.SystemBuffer>.

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

Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер входного буфера в байтах, который должен быть больше или равен значению sizeof(VOLUME_LOGICAL_OFFSET).

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

Размер выходного буфера должен быть достаточно большим, чтобы вместить структуру VOLUME_PHYSICAL_OFFSETS, которая содержит массив переменных размеров структур типа VOLUME_PHYSICAL_OFFSET.

Диспетчер томов возвращает одно или несколько физических смещения и номера дисков в структуре VOLUME_PHYSICAL_OFFSETS в начале буфера по адресу Irp-AssociatedIrp.SystemBuffer>.

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

Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер выходного буфера в байтах.

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

Если операция выполнена успешно, для элемента Status устанавливается значение STATUS_SUCCESS. В противном случае элементу Status присваивается соответствующий код ошибки. Возможные коды ошибок:

STATUS_BUFFER_TOO_SMALL

Выходной буфер слишком мал. Диспетчер томов задает членУ Irp-IoStatus.Information> размер выходного буфера, который должен был предоставить вызывающий объект.

STATUS_INVALID_PARAMETER

Входной буфер слишком мал.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows XP.
Верхняя часть ntddvol.h (включая Ntddvol.h)

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

IOCTL_VOLUME_PHYSICAL_TO_LOGICAL

VOLUME_LOGICAL_OFFSET

VOLUME_PHYSICAL_OFFSET

VOLUME_PHYSICAL_OFFSETS