Freigeben über


Journaldatensätze ändern

Wenn Dateien, Verzeichnisse und andere NTFS-Dateisystemobjekte hinzugefügt, gelöscht und geändert werden, wechselt das NTFS-Dateisystem in Datenströme, eines für jedes Volume auf dem Computer. Jeder Datensatz gibt den Typ der Änderung und das geänderte Objekt an. Der Offset vom Anfang des Datenstroms für einen bestimmten Datensatz wird als Updatesequenznummer (USN) für den jeweiligen Datensatz bezeichnet. Neue Datensätze werden am Ende des Datenstroms angefügt.

Das NTFS-Dateisystem kann alte Datensätze löschen, um Speicherplatz zu sparen. Wenn erforderliche Datensätze gelöscht wurden, wird der Indizierungsdienst wiederhergestellt, indem das Volume erneut indiziert wird, da kein Änderungsjournal vorhanden ist.

Das Änderungsjournal protokolliert nur die Tatsache einer Änderung an einer Datei und den Grund für die Änderung (z. B. Schreibvorgänge, Abschneiden, Längen, Löschen usw.). Es werden nicht genügend Informationen erfasst, um die Änderung rückgängig zu machen.

Darüber hinaus können mehrere Änderungen an derselben Datei dazu führen, dass dem aktuellen Datensatz nur ein Flag hinzugefügt wird. Wenn dieselbe Art von Änderung mehrmals auftritt, schreibt das NTFS-Dateisystem nach dem ersten Mal keinen neuen Datensatz für die Änderungen. Beispielsweise führen mehrere Schreibvorgänge ohne eingreifende Schließen- und Erneut öffnen-Vorgänge zu nur einem Änderungsdatensatz mit dem Grundkennzeichnung USN_REASON_DATA_OVERWRITE festgelegt.

Um zu veranschaulichen, wie das Änderungsjournal funktioniert, nehmen wir an, dass ein Benutzer in der folgenden Reihenfolge auf eine Datei zugreift:

  1. Schreibt in die Datei.
  2. Legt den Zeitstempel für die Datei fest.
  3. Schreibt in die Datei.
  4. Schneidet die Datei ab.
  5. Schreibt in die Datei.
  6. Schließt die Datei.

In diesem Fall führt das NTFS-Dateisystem die folgenden Aktionen im Änderungsjournal aus (wobei | einen bitweisen OR-Vorgang angibt).

Ereignis NTFS-Dateisystemaktion
Anfänglicher Schreibvorgang
Das NTFS-Dateisystem schreibt einen neuen USN-Eintrag mit dem USN_REASON_DATA_OVERWRITE Grundkennzeichnungssatz. Weitere Informationen zu möglichen Ursachenkennzeichnungen finden Sie in der USN_RECORD Struktur.
Festlegen des Dateizeitstempels
Das NTFS-Dateisystem schreibt einen neuen USN-Eintrag mit der Kennzeichnungseinstellung USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE.
Zweiter Schreibvorgang
Das NTFS-Dateisystem schreibt keinen neuen USN-Eintrag. Da USN_REASON_DATA_OVERWRITE bereits für den vorhandenen Datensatz festgelegt ist, werden keine Änderungen am Datensatz vorgenommen.
Dateiabkürzung
Das NTFS-Dateisystem schreibt einen neuen USN-Eintrag mit der Kennzeichnungseinstellung USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION.
Dritter Schreibvorgang
Das NTFS-Dateisystem schreibt keinen neuen USN-Eintrag. Da USN_REASON_DATA_OVERWRITE bereits für den vorhandenen Datensatz festgelegt ist, werden keine Änderungen am Datensatz vorgenommen.
Vorgang schließen
Wenn der Benutzer Änderungen vornimmt, ist es der einzige Benutzer der Datei, schreibt das NTFS-Dateisystem einen neuen USN-Eintrag mit der folgenden Kennzeichnungseinstellung: USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE.

Das Änderungsjournal sammelt eine Reihe von Datensätzen zwischen dem ersten Öffnen und dem letzten Schließen einer Datei. Jeder Datensatz verfügt über einen neuen Grundkennzeichnungssatz, der angibt, dass eine neue Art von Änderung aufgetreten ist. Die Abfolge von Datensätzen gibt einen teilweisen Verlauf der Datei an. Der letzte Datensatz, der beim Schließen der Datei erstellt wurde, fügt das USN_REASON_CLOSE Flag hinzu. Dieser Datensatz stellt eine Zusammenfassung der Änderungen an der Datei dar, gibt jedoch im Gegensatz zu den vorherigen Datensätzen keine Hinweise auf die Reihenfolge der Änderungen.

Der nächste Benutzer, auf den die Datei zugegriffen und geändert werden soll, generiert einen neuen USN-Eintrag mit einem einzigen Grundkennzeichnung.