次の方法で共有


履歴の変更

自動バックアップ アプリケーションは、そのタスクを実行するためにボリュームの状態の変更を確認する必要があるプログラムの 1 つの例です。 ディレクトリまたはファイルの変更をチェックするブルート フォース方式は、ボリューム全体をスキャンすることです。 ただし、多くの場合、システムパフォーマンスが低下するため、これは受け入れ可能なアプローチではありません。 もう 1 つの方法は、アプリケーションがバックアップするディレクトリのディレクトリ通知を登録することです (FindFirstChangeNotification を呼び出すか、ReadDirectoryChangesW関数をします)。 これは最初の方法よりも効率的ですが、アプリケーションが常に実行されている必要があります。 また、多数のディレクトリとファイルをバックアップする必要がある場合は、このようなアプリケーションの処理量とメモリオーバーヘッドによって、オペレーティング システムのパフォーマンスが低下する可能性もあります。

これらの欠点を回避するために、NTFS ファイル システムは更新シーケンス番号 (USN) 変更履歴を保持します。 ボリューム内のファイルまたはディレクトリに変更が加えられた場合、そのボリュームの USN 変更ジャーナルは、変更の説明とファイルまたはディレクトリの名前で更新されます。

コンピューターやボリュームの障害が発生した後など、ファイル システムのインデックス作成を回復するには、変更ジャーナルも必要です。 インデックス作成を回復する機能は、ファイル システムがこのような場合にボリューム全体のインデックスを再作成する時間のかかるプロセスを回避できることを意味します。

次のトピックでは、変更履歴について説明します。

このセクションでは、次の操作を行います。

話題 形容
履歴レコードの変更
ファイル、ディレクトリ、およびその他の NTFS ファイル システム オブジェクトが追加、削除、および変更されると、NTFS ファイル システムは、コンピューター上のボリュームごとに 1 つずつ、変更履歴レコードをストリームに入力します。
変更履歴識別子 を使用した
NTFS ファイル システムは、署名されていない 64 ビット識別子を変更履歴ごとに関連付けます。
変更履歴 の作成、変更、および削除の
管理者は、変更履歴を作成、削除、および再作成できます。
変更履歴操作 のボリューム ハンドルを取得する
更新シーケンス番号 (USN) 変更ジャーナル操作で使用するボリュームへのハンドルを取得するには、lpFileName パラメーターを次の形式の文字列に設定して、CreateFile 関数を呼び出します: \\.\X
変更履歴操作
NTFS ファイル システム更新シーケンス番号 (USN) 変更履歴で使用する制御コードと構造体。