Partager via


Modifier les enregistrements de journal

En tant que fichiers, répertoires et autres objets de système de fichiers NTFS sont ajoutés, supprimés et modifiés, le système de fichiers NTFS entre dans les enregistrements de journal dans les flux, un pour chaque volume sur l’ordinateur. Chaque enregistrement indique le type de modification et l’objet modifié. Le décalage du début du flux pour un enregistrement particulier est appelé numéro de séquence de mise à jour (USN) pour l’enregistrement particulier. De nouveaux enregistrements sont ajoutés à la fin du flux.

Le système de fichiers NTFS peut supprimer les anciens enregistrements pour économiser de l’espace. Si les enregistrements nécessaires ont été supprimés, le service d’indexation récupère en réindexant le volume, car il n’existe aucun journal de modification.

Le journal des modifications journalise uniquement le fait d’une modification apportée à un fichier et la raison de la modification (par exemple, opérations d’écriture, troncation, longueur, suppression, etc.). Il n’enregistre pas suffisamment d’informations pour permettre l’inversion de la modification.

En outre, plusieurs modifications apportées au même fichier peuvent entraîner l’ajout d’un seul indicateur de raison à l’enregistrement actif. Si le même type de modification se produit plusieurs fois, le système de fichiers NTFS n’écrit pas d’enregistrement pour les modifications après le premier. Par exemple, plusieurs opérations d’écriture sans opérations de fermeture et de réouverture intermédiaires n’entraînent qu’un seul enregistrement de modification avec l’indicateur de raison USN_REASON_DATA_OVERWRITE défini.

Pour illustrer le fonctionnement du journal des modifications, supposons qu’un utilisateur accède à un fichier dans l’ordre suivant :

  1. Écrit dans le fichier.
  2. Définit l’horodatage du fichier.
  3. Écrit dans le fichier.
  4. Tronque le fichier.
  5. Écrit dans le fichier.
  6. Ferme le fichier.

Dans ce cas, le système de fichiers NTFS effectue les actions suivantes dans le journal des modifications (où | indique une opération OR au niveau du bit).

Événement Action du système de fichiers NTFS
Opération d’écriture initiale
Le système de fichiers NTFS écrit un nouvel enregistrement USN avec le jeu d’indicateurs de raison USN_REASON_DATA_OVERWRITE. Pour plus d’informations sur les indicateurs de raison possibles, consultez la structure USN_RECORD.
Paramètre de l’horodatage du fichier
Le système de fichiers NTFS écrit un nouvel enregistrement USN avec le paramètre d’indicateur USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE.
Deuxième opération d’écriture
Le système de fichiers NTFS n’écrit pas de nouvel enregistrement USN. Étant donné que USN_REASON_DATA_OVERWRITE est déjà défini pour l’enregistrement existant, aucune modification n’est apportée à l’enregistrement.
Troncation de fichier
Le système de fichiers NTFS écrit un nouvel enregistrement USN avec le paramètre d’indicateur USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION.
Troisième opération d’écriture
Le système de fichiers NTFS n’écrit pas de nouvel enregistrement USN. Étant donné que USN_REASON_DATA_OVERWRITE est déjà défini pour l’enregistrement existant, aucune modification n’est apportée à l’enregistrement.
Opération de fermeture
Si l’utilisateur apporte des modifications est le seul utilisateur du fichier, le système de fichiers NTFS écrit un nouvel enregistrement USN avec le paramètre d’indicateur suivant : USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE.

Le journal des modifications accumule une série d’enregistrements entre la première ouverture et la dernière fermeture d’un fichier. Chaque enregistrement a un nouveau jeu d’indicateurs de raison, indiquant qu’un nouveau type de modification s’est produit. La séquence d’enregistrements donne un historique partiel du fichier. L’enregistrement final, créé lorsque le fichier est fermé, ajoute l’indicateur USN_REASON_CLOSE. Cet enregistrement représente un résumé des modifications apportées au fichier, mais contrairement aux enregistrements précédents, n’indique pas l’ordre des modifications.

L’utilisateur suivant pour accéder au fichier et le modifier génère un nouvel enregistrement USN avec un indicateur de raison unique.