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


IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL (ntddvol.h)

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

Нет.

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

Нет.

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

Драйвер возвращает структуру VOLUME_DISK_EXTENTS в буфере по адресу Irp-AssociatedIrp.SystemBuffer>, которая должна быть не менее sizeof(VOLUME_DISK_EXTENTS).

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

Длина структуры VOLUME_DISK_EXTENTS.

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

Драйвер задает Irp-IoStatus.Information> и поле Состояние следующим образом:

  • Если буфер в Irp->AssociatedIrp.SystemBuffer имеет значение < sizeof(VOLUME_DISK_EXTENTS), драйвер устанавливает для Irp->IoStatus.Information значение 0 и возвращает STATUS_INVALID_PARAMETER.
  • Если буфер в Irp->AssociatedIrp.SystemBuffer имеет значение sizeof(VOLUME_DISK_EXTENTS), но слишком мал для всех возвращаемых данных, драйвер устанавливает для Irp->IoStatus.Information значение sizeof(VOLUME_DISK_EXTENTS), а для параметра Status — значение STATUS_BUFFER_OVERFLOW.
  • Если буфер в Irp->AssociatedIrp.SystemBuffer достаточно велик для возврата всех данных, драйвер устанавливает для Irp->IoStatus.Information значение sizeof(VOLUME_DISK_EXTENTS) + ((NumberOfDiskExtents - 1) * sizeof(DISK_EXTENT)) и задает для параметра Status значение STATUS_SUCCESS.

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows 2000 для томов на фиксированных дисках, но не для томов на съемных носителях. Доступно для использования со съемными носителями в Microsoft Windows 2000 с пакетом обновления 4 (SP4) и Windows XP с пакетом обновления 1 (SP1).
Верхняя часть ntddvol.h (включая Ntddvol.h)

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

DISK_EXTENT

VOLUME_DISK_EXTENTS