IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL (ntddvol.h)
Возвращает физическое расположение тома на одном или нескольких дисках. Экстенты изначально хранятся в том порядке, в котором они создаются, но повторное изменение, разделение или нарушение зеркало или действия, выполняемые во время аварийного восстановления, могут повлиять на порядок экстентов диска.
Основной код
Входной буфер
Нет.
Длина входного буфера
Нет.
Выходной буфер
Драйвер возвращает структуру 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) |