Cambiar registros del diario

A medida que los archivos, directorios y otros objetos del sistema de archivos NTFS se agregan, eliminan y modifican, el sistema de archivos NTFS escribe registros de diario de cambios en secuencias, uno para cada volumen del equipo. Cada registro indica el tipo de cambio y el objeto cambiado. El desplazamiento desde el principio de la secuencia de un registro determinado se denomina número de secuencia de actualización (USN) para el registro determinado. Los nuevos registros se anexan al final de la secuencia.

El sistema de archivos NTFS puede eliminar registros antiguos para ahorrar espacio. Si se han eliminado los registros necesarios, el servicio de indexación se recupera al volver a indexar el volumen, como sucede cuando no existe ningún diario de cambios.

El diario de cambios registra solo el hecho de un cambio en un archivo y el motivo del cambio (por ejemplo, operaciones de escritura, truncamiento, alargamiento, eliminación, etc.). No registra suficiente información para permitir revertir el cambio.

Además, varios cambios en el mismo archivo pueden dar lugar a que solo se agregue una marca de motivo al registro actual. Si el mismo tipo de cambio se produce más de una vez, el sistema de archivos NTFS no escribe un nuevo registro para los cambios después del primero. Por ejemplo, varias operaciones de escritura sin operaciones intermedias de cierre y de reapertura dan como resultado solo un registro de cambio con la marca de motivo USN_REASON_DATA_OVERWRITE establecido.

Para ilustrar cómo funciona el diario de cambios, supongamos que un usuario accede a un archivo en el orden siguiente:

  1. Escribe en el archivo.
  2. Establece la marca de tiempo del archivo.
  3. Escribe en el archivo.
  4. Trunca el archivo.
  5. Escribe en el archivo.
  6. Cierra el archivo.

En este caso, el sistema de archivos NTFS realiza las siguientes acciones en el diario de cambios (donde | indica una operación OR bit a bit).

Evento Acción del sistema de archivos NTFS
Operación de escritura inicial
El sistema de archivos NTFS escribe un nuevo registro USN con la marca de USN_REASON_DATA_OVERWRITE motivo establecida. Para obtener más información sobre las posibles marcas de motivo, consulte la estructura USN_RECORD .
Configuración de la marca de tiempo de archivo
El sistema de archivos NTFS escribe un nuevo registro USN con la configuración de marca USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE.
Segunda operación de escritura
El sistema de archivos NTFS no escribe un nuevo registro USN. Dado que USN_REASON_DATA_OVERWRITE ya está establecido para el registro existente, no se realizan cambios en el registro.
Truncamiento de archivos
El sistema de archivos NTFS escribe un nuevo registro USN con la configuración de marca USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION.
Tercera operación de escritura
El sistema de archivos NTFS no escribe un nuevo registro USN. Dado que USN_REASON_DATA_OVERWRITE ya está establecido para el registro existente, no se realizan cambios en el registro.
Operación de cierre
Si el usuario que realiza cambios es el único usuario del archivo, el sistema de archivos NTFS escribe un nuevo registro USN con la siguiente configuración de marca: USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE.

El diario de cambios acumula una serie de registros entre la primera apertura y el último cierre de un archivo. Cada registro tiene una nueva marca de motivo establecida, lo que indica que se ha producido un nuevo tipo de cambio. La secuencia de registros proporciona un historial parcial del archivo. El registro final, creado cuando se cierra el archivo, agrega la marca USN_REASON_CLOSE. Este registro representa un resumen de los cambios realizados en el archivo, pero a diferencia de los registros anteriores, no proporciona ninguna indicación del orden de los cambios.

El siguiente usuario al que se va a acceder y cambiar el archivo genera un nuevo registro USN con una sola marca de motivo.