問題タブ [usn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1679 参照

windows - NTFS ボリューム上の USN レコードの数を見積もる

USN ジャーナルを初めて使用するときは、FSCTL_ENUM_USN_DATA 制御コードを使用して、ボリュームの USN レコードのセット全体を列挙する必要があります。これは通常、時間のかかる操作です。

進行状況を表示できるように、実行する前にボリューム上のレコード数を見積もる方法はありますか?

ボリューム全体の USN データは、MFT から生成され、ファイルごとに 1 つのレコード (およそ) であると推測しています。そのため、MFT 内のアクティブなファイルの数を推定する方法が機能する可能性があります。

0 投票する
1 に答える
3528 参照

windows - NTFSファイルシステムのUSNジャーナルは、宣言されたサイズよりも大きくできますか?

プログラマーの皆さん、こんにちは。

WinIoCtl関数を使用して、 NTFSパーティションのUSNジャーナルの内容をダンプしようとしています。* USN_JOURNAL_DATA *構造体があり、最大サイズが512MBであることを示しています。私はそれをfsutilがそれについて言わなければならないことと比較しました、そしてそれは同じ値です。

次に、各エントリを*USN_RECORD*構造体に読み込む必要があります。これは、0から始まり、ジャーナルの最大サイズ(4096(クラスターサイズ)単位)に達するforループで行います。同じサイズのバッファ内の各4096バイトを読み取り、そこからすべてのUSN_RECORD構造体を読み取りました。

最近のレコードが欠落しているように見えることを除いて、すべてが順調に進んでおり、ファイル名も正しく、タイムスタンプも、理由もすべてです。パーティションに新しいファイルを作成し、そこに何かを書き込んでから、ファイルを削除します。アプリを再度実行しましたが、レコードが表示されません。ジャーナルの最大サイズを超えて読み続けた場合にのみ、レコードが表示されることがわかりました。どうしてそれができるのでしょうか?

現時点では、ジャーナルのデータの先頭から最大サイズ+割り当てデルタ(どちらも* USN_JOURNAL_DATA *構造に格納されている値)まで読んでいますが、これは正しいとは思わず、徹底的に見つけるのに苦労しています。これに関連する情報。

誰かがこれを説明できますか?USNジャーナルの周りにMFTの動作と同様のバッファがありますか(他のファイルにディスクスペースが必要な場合はサイズが半分になることを意味します)?

私は何が間違っているのですか?

0 投票する
1 に答える
212 参照

usn - ハードリンクの USN ジャーナル

すべてがディレクトリ外のファイルを指しているいくつかのハードリンクを持つディレクトリがある場合、ハードリンクの 1 つを変更すると、ディレクトリに関連付けられた USN ジャーナルに影響しますか、それとも実際のファイルを含む元のディレクトリの USN ジャーナルに影響しますか?作成時にどのハードリンクがリンクされていますか?

0 投票する
0 に答える
278 参照

c++ - FSCTL_ENUM_USN_DATA を実行する前に、ファイル/ディレクトリの数を把握する

USNジャーナル/NTFS MFTファイルの列挙を行う前に

ファイル/ディレクトリの数を知りたいです( std::vector: を「予約」するため、v.reserve(...)およびその他の理由で)。

FSCTL_QUERY_USN_JOURNAL以前に使用することを考えていUSN_JOURNAL_DATA_V0ましたが、ボリュームに関する情報が含まれています。

残念ながら、、、FirstUsnこの情報は教えないNextUsnでください。MaxUsnボリュームに 10 万個のファイルがある場合でも、NextUsnたとえば 1,000 万個になる可能性があるため、適切な大きさのオーダーは得られません。

FSCTL_ENUM_USN_DATA を実行する前にファイル/ディレクトリの数を取得する方法は?