FSCTL_REARRANGE_FILE IOCTL (ntifs.h)
FSCTL_REARRANGE_FILE переупорядочение выделения в файле, перемещение кластеров из запрошенного диапазона источника в файле в другое расположение в том же файле.
Основной код
Входной буфер
Указатель на структуру REARRANGE_FILE_DATA, описывающую распределение, которое необходимо изменить. (Для 32-разрядных вызывающих элементов входной буфер является указателем на структуру REARRANGE_FILE_DATA32.)
Длина входного буфера
Размер входного буфера в байтах.
Выходной буфер
Никакой; задайте значение NULL.
Длина выходного буфера
Установите значение нулю.
Блок состояния
Возвращаемые значения
FSCTL_REARRANGE_FILE возвращает STATUS_SUCCESS после успешного завершения; в противном случае возвращается код NTSTATUS, например один из следующих.
Возвращаемый код | Значение |
---|---|
STATUS_ACCESS_DENIED | Разрешены только вызовы в режиме ядра. |
STATUS_BUFFER_TOO_SMALL | Указанная длина входного буфера меньше размера (REARRANGE_FILE_DATA). |
STATUS_PENDING | Выполнение операции ожидается. |
Замечания
параметры запроса содержат смещение байтов исходного и целевого файла и длину в байтах исходного региона для перемещения, все из которых должны быть выровнены по кластеру.
- При перемещении кластеров вниз целевое смещение файла указывает точку, в которой должна быть выровнена нижняя граница движущегося исходного диапазона.
- При перемещении кластеров вверх целевое смещение файла указывает точку, в которой должна быть выровнена верхняя граница исходного диапазона.
В обоих случаях целевое смещение указывает, что исходный диапазон должен быть вставлен перед кластером, начинающимся с целевого смещения, различие, принудительное ограничением, которое остается фиксированным.
В отличие от FSCTL_SHUFFLE_FILE, FSCTL_REARRANGE_FILE не позволяет добавлять выделения, содержащие случайные данные.
Чтобы выполнить эту операцию, вызовите FltFsControlFile или ZwFsControlFile со следующими параметрами.
Параметр | Описание |
---|---|
[in] Только для FltFsControlFile. Непрозрачный указатель экземпляра вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL. | |
FileObject | [in] Только для FltFsControlFile. Указатель объекта файла для файла или каталога, который является целевым объектом этого запроса. Этот параметр является обязательным и не может иметь значение NULL. |
FileHandle | [in] Только для ZwFsControlFile. Дескриптор файла или каталога, который является целевым объектом этого запроса. Этот параметр является обязательным и не может иметь значение NULL. |
IoStatusBlock | [out] Только для ZwFsControlFile. Указатель на структуру IO_STATUS_BLOCK, содержащую окончательное состояние запроса. |
FsControlCode | [in] Установите значение FSCTL_REARRANGE_FILE. |
InputBuffer | [in] См. параметры IOCTL. |
InputBufferLength | [in] См. параметры IOCTL. |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1809 |
заголовка | ntifs.h |