Delen via


Logboekrecords wijzigen

Als bestanden, mappen en andere NTFS-bestandssysteemobjecten worden toegevoegd, verwijderd en gewijzigd, voert het NTFS-bestandssysteem wijzigingenlogboekrecords in streams in, één voor elk volume op de computer. Elke record geeft het type wijziging aan en het object is gewijzigd. De offset van het begin van de stream voor een bepaalde record wordt het updatereeksnummer (USN) voor de specifieke record genoemd. Nieuwe records worden toegevoegd aan het einde van de stream.

Het NTFS-bestandssysteem kan oude records verwijderen om ruimte te besparen. Indien nodig records zijn verwijderd, herstelt de indexeringsservice door het volume opnieuw te indexeren, net als wanneer er geen wijzigingslogboek bestaat.

Het wijzigingslogboek registreert alleen het feit van een wijziging in een bestand en de reden voor de wijziging (bijvoorbeeld schrijfbewerkingen, afkapping, verlenging, verwijdering, enzovoort). Er worden onvoldoende gegevens vastgelegd om de wijziging om te draaien.

Bovendien kunnen meerdere wijzigingen in hetzelfde bestand ertoe leiden dat er slechts één redenvlag wordt toegevoegd aan de huidige record. Als hetzelfde soort wijziging meerdere keren optreedt, schrijft het NTFS-bestandssysteem na de eerste keer geen nieuwe record voor de wijzigingen. Een aantal schrijfbewerkingen zonder tussenliggende bewerkingen voor sluiten en opnieuw openen resulteert bijvoorbeeld in slechts één wijzigingsrecord met de redenvlag USN_REASON_DATA_OVERWRITE set.

Als u wilt laten zien hoe het wijzigingslogboek werkt, stelt u dat een gebruiker een bestand in de volgende volgorde opent:

  1. Schrijft naar het bestand.
  2. Hiermee stelt u het tijdstempel voor het bestand in.
  3. Schrijft naar het bestand.
  4. Kapt het bestand af.
  5. Schrijft naar het bestand.
  6. Hiermee sluit u het bestand.

In dit geval voert het NTFS-bestandssysteem de volgende acties uit in het wijzigingslogboek (waarbij | een bitwise OR-bewerking aangeeft).

Gebeurtenis NTFS-bestandssysteemactie
Initiële schrijfbewerking
Het NTFS-bestandssysteem schrijft een nieuwe USN-record met de USN_REASON_DATA_OVERWRITE redenvlag ingesteld. Zie de USN_RECORD structuur voor meer informatie over mogelijke redenvlagmen.
Instelling van bestandstijdstempel
Het NTFS-bestandssysteem schrijft een nieuwe USN-record met de vlaginstelling USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE.
Tweede schrijfbewerking
Het NTFS-bestandssysteem schrijft geen nieuwe USN-record. Omdat USN_REASON_DATA_OVERWRITE al is ingesteld voor de bestaande record, worden er geen wijzigingen aangebracht in de record.
Afkapping van bestanden
Het NTFS-bestandssysteem schrijft een nieuwe USN-record met de vlaginstelling USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION.
Derde schrijfbewerking
Het NTFS-bestandssysteem schrijft geen nieuwe USN-record. Omdat USN_REASON_DATA_OVERWRITE al is ingesteld voor de bestaande record, worden er geen wijzigingen aangebracht in de record.
Bewerking sluiten
Als de gebruiker die wijzigingen aanbrengt de enige gebruiker van het bestand is, schrijft het NTFS-bestandssysteem een nieuwe USN-record met de volgende vlaginstelling: USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE.

Het wijzigingslogboek verzamelt een reeks records tussen het eerste openen en het laatste sluiten van een bestand. Elke record heeft een nieuwe redenvlag die aangeeft dat er een nieuw soort wijziging is opgetreden. De reeks records geeft een gedeeltelijke geschiedenis van het bestand. De uiteindelijke record, gemaakt wanneer het bestand wordt gesloten, voegt de USN_REASON_CLOSE vlag toe. Deze record vertegenwoordigt een samenvatting van wijzigingen in het bestand, maar in tegenstelling tot de voorgaande records, geeft geen indicatie van de volgorde van de wijzigingen.

De volgende gebruiker die het bestand opent en wijzigt, genereert een nieuwe USN-record met één redenvlag.