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
Búfer de entrada
Puntero a una estructura de 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; se establece en NULL.
Longitud del búfer de salida
Establecer en cero.
Bloque de estado
Valores devueltos
FSCTL_REARRANGE_FILE devuelve STATUS_SUCCESS tras completarse correctamente; de lo contrario, devuelve un código NTSTATUS, como uno de los siguientes.
Código de retorno | 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. |
Comentarios
Los parámetros de solicitud 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 que fuerza la restricción de 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 | [in] Solo para FltFsControlFile . Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL. |
FileObject | [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 obligatorio y no puede ser NULL. |
FileHandle | [in] Solo para ZwFsControlFile . Identificador de archivo del archivo o directorio que es el destino de esta solicitud. Este parámetro es obligatorio y no puede ser NULL. |
IoStatusBlock | [out] Solo para ZwFsControlFile . Puntero a una estructura de 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 | Value |
---|---|
Cliente mínimo compatible | Windows 10, versión 1809 |
Encabezado | ntifs.h |