FSCTL_MOVE_FILE IOCTL (winioctl.h)
Reubica uno o varios clústeres virtuales de un archivo de un clúster lógico a otro dentro del mismo volumen. Esta operación se usa durante la desfragmentación.
Para realizar esta operación, llame a la función DeviceIoControl con los siguientes parámetros.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_MOVE_FILE, // dwIoControlCode
(LPVOID) lpInBuffer, // MOVE_FILE_DATA structure
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Comentarios
El código de control FSCTL_MOVE_FILE reubica uno o varios clústeres virtuales de un archivo de un clúster lógico a otro dentro del mismo volumen. Si el archivo que se va a mover es un archivo disperso o comprimido, la granularidad del movimiento es de 16 clústeres; de lo contrario, la granularidad es un clúster.
Para marcar un archivo abierto para que no se desfragmente, llame a la función DeviceIoControl con el código de control FSCTL_MARK_HANDLE con MARK_HANDLE_PROTECT_CLUSTERS en el miembro HandleInfo de la estructura MARK_HANDLE_INFO pasada en el parámetro lpInBuffer .
Tenga en cuenta que el mapa de bits devuelto por la función DeviceIoControl con el código de control FSCTL_GET_VOLUME_BITMAP representa un momento dado y puede ser incorrecto en cuanto se haya leído si el volumen tiene actividad de escritura. Por lo tanto, es posible intentar mover un clúster a un clúster asignado a pesar de un mapa de bits reciente que indica que el clúster no está asignado. Los programas que usan FSCTL_MOVE_FILE deben estar preparados para esta posibilidad.
Para conocer las implicaciones de la E/S superpuesta en esta operación, consulte la sección Comentarios del tema DeviceIoControl .
Para obtener una lista de archivos, secuencias y tipos de flujo admitidos por el código de control de FSCTL_MOVE_FILE , consulte la sección Archivos, secuencias y tipos de flujo admitidos para la desfragmentación del tema Archivos de desfragmentación .
En Windows 8 y Windows Server 2012, este código es compatible con las siguientes tecnologías.
Tecnología | Compatible |
---|---|
Protocolo Bloque de mensajes del servidor (SMB) 3.0 | No |
Conmutación por error transparente (TFO) de SMB 3.0 | No |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | No |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | Sí |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | winioctl.h (incluye Windows.h) |