Compartir a través de


FSCTL_REARRANGE_FILE IOCTL (ntifs.h)

FSCTL_REARRANGE_FILE reorganiza la asignación dentro del archivo, moviendo clústeres de un intervalo de origen contiguo solicitado dentro de un archivo a otra ubicación dentro del mismo archivo.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

Puntero a una estructura REARRANGE_FILE_DATA que describe la asignación que se va a reorganizar. (Para los autores de llamadas de 32 bits, el búfer de entrada es un puntero a una estructura de REARRANGE_FILE_DATA32).

Longitud del búfer de entrada

Tamaño en bytes del búfer de entrada.

Búfer de salida

Ninguno; establézcalo en NULL.

Longitud del búfer de salida

Establézcalo en cero.

Bloque de estado

Valores devueltos

FSCTL_REARRANGE_FILE devuelve STATUS_SUCCESS tras la finalización correcta; de lo contrario, devuelve un código NTSTATUS como uno de los siguientes.

Código devuelto Significado
STATUS_ACCESS_DENIED Solo se permiten llamadas en modo kernel.
STATUS_BUFFER_TOO_SMALL La longitud del búfer de entrada especificada es menor que sizeof(REARRANGE_FILE_DATA).
STATUS_PENDING La finalización de la operación está pendiente.

Observaciones

parámetros request contienen desplazamientos de bytes de archivo de origen y de destino, y longitud en bytes de la región de origen que se va a mover, todos los cuales deben estar alineados con el clúster.

  • Si mueve los clústeres hacia abajo, el desplazamiento del archivo de destino indica el punto en el que se debe alinear el límite inferior del intervalo de origen móvil.
  • Si mueve los clústeres hacia arriba, el desplazamiento del archivo de destino indica el punto en el que se debe alinear el límite superior del intervalo de origen.

En ambos casos, el desplazamiento de destino indica que el intervalo de origen debe insertarse antes del clúster que comienza en el desplazamiento de destino, la distinción forzada por la restricción que el tamaño de asignación permanece fijo.

A diferencia de FSCTL_SHUFFLE_FILE, FSCTL_REARRANGE_FILE no permite agregar asignaciones que contengan datos aleatorios.

Para realizar esta operación, llame a FltFsControlFile o ZwFsControlFile con los parámetros siguientes.

Parámetro Descripción
instancia de [in] Solo para FltFsControlFile. Puntero de instancia opaco para el autor de la llamada. Este parámetro es necesario y no puede ser NULL.
FileObject de [in] Solo para FltFsControlFile. Puntero de objeto de archivo para el archivo o directorio que es el destino de esta solicitud. Este parámetro es necesario y no puede ser NULL.
FileHandle de [in] Solo para ZwFsControlFile. Identificador de archivo del archivo o directorio que es el destino de esta solicitud. Este parámetro es necesario y no puede ser NULL.
IoStatusBlock [out] Solo para ZwFsControlFile. Puntero a una estructura IO_STATUS_BLOCK que contiene el estado final de la solicitud.
FsControlCode [in] Establezca en FSCTL_REARRANGE_FILE.
InputBuffer [in] Consulte Parámetros de IOCTL.
InputBufferLength [in] Consulte Parámetros de IOCTL.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 1809
encabezado de ntifs.h

Consulte también

fltFsControlFile de

FSCTL_SHUFFLE_FILE

REARRANGE_FILE_DATA

ZwFsControlFile