Partager via


Utilisation de l’identificateur du journal des modifications

Le système de fichiers NTFS associe un identificateur 64 bits non signé à chaque journal des modifications. Le journal est marqué avec cet identificateur lors de sa création. Le système de fichiers marque le journal avec un nouvel identificateur où les enregistrements USN (Update Sequence Number) existants sont ou peuvent être inutilisables.

Par exemple, le système de fichiers NTFS restampille un journal des modifications avec un nouvel identificateur lorsqu’un volume est déplacé d’une version de NTFS à une autre, puis de nouveau. Un tel déplacement peut se produire dans un environnement à double démarrage ou lors de l’utilisation d’un support amovible.

Pour obtenir l’identificateur du journal des modifications actuel sur un volume spécifié, utilisez le code de contrôle FSCTL_QUERY_USN_JOURNAL . Pour effectuer cette opération et toutes les autres opérations de journal des modifications, vous devez disposer de privilèges d’administrateur système. Autrement dit, vous devez être membre du groupe Administrateurs.

Lorsqu’un administrateur supprime et recrée le journal des modifications, par exemple lorsque la valeur USN actuelle approche de la valeur USN maximale possible, les valeurs USN recommencent à partir de zéro. Lorsque le système de fichiers NTFS marque un journal avec un nouvel identificateur au lieu de recréer le journal, il ne réinitialise pas l’USN à zéro, mais continue à partir de l’USN actuel. Dans les deux cas, tous les USN existants sont inférieurs à n’importe quel USN futur.

Lorsque vous avez besoin d’informations sur un jeu d’enregistrements spécifique, utilisez le code de contrôle FSCTL_QUERY_USN_JOURNAL pour obtenir l’identificateur du journal des modifications. Utilisez ensuite le code de contrôle FSCTL_READ_USN_JOURNAL pour lire les enregistrements de journal qui vous intéressent. Le système de fichiers NTFS retourne uniquement les enregistrements valides pour le journal spécifié par l’identificateur.

Votre application a besoin à la fois des USN des enregistrements et de l’identificateur pour lire le journal. Cette exigence fournit une case activée d’intégrité pour les cas où votre application doit ignorer les enregistrements existants dans le fichier et où des enregistrements ont été écrits dans des instances précédentes du journal pour le même volume.

Pour obtenir les enregistrements qui vous intéressent, vous devez commencer à l’enregistrement le plus ancien (c’est-à-dire, avec l’USN le plus bas) et procéder à l’analyse jusqu’à ce que vous localisiez le premier enregistrement qui vous intéresse.