IOCTL_VOLUME_PHYSICAL_TO_LOGICAL IOCTL (ntddvol.h)
Возвращает логическое смещение, соответствующее номеру физического диска и физическому смещению.
Диспетчер томов поддерживает этот IOCTL, как описано для всех типов базовых и динамических томов.
Основной код
Входной буфер
Вызывающий объект вставляет структуру VOLUME_PHYSICAL_OFFSET, содержащую физическое смещение и номер физического диска, в начало буфера по адресу Irp-AssociatedIrp.SystemBuffer>.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер входного буфера в байтах, который должен быть больше или равен значению sizeof(VOLUME_PHYSICAL_OFFSET).Выходной буфер
Диспетчер томов возвращает логическое смещение в структуре VOLUME_LOGICAL_OFFSET в начале буфера в Irp-AssociatedIrp.SystemBuffer>.
Длина выходного буфера
Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер выходного буфера в байтах, который должен быть больше или равен значению sizeof(VOLUME_LOGICAL_OFFSET).Блок состояния
Если операция выполнена успешно, для элемента Status устанавливается значение STATUS_SUCCESS.
Если входной или выходной буфер слишком мал, диспетчер томов устанавливает для элемента Status значение STATUS_BUFFER_TOO_SMALL. Если данные возвращаются в выходном буфере, но буфер слишком мал для получения всех этих данных, диспетчер томов устанавливает для элемента Status значение STATUS_BUFFER_OVERFLOW. Для элемента Information задается размер выходного буфера, предоставленного вызывающим объектом.
Если указанный номер физического диска и физическое смещение не принадлежат тому или они взяты из данных четности RAID, этот вызов завершится ошибкой с STATUS_INVALID_PARAMETER.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно, начиная с Windows XP. |
Верхняя часть | ntddvol.h (включая Ntddvol.h) |