私はのディスク/パーティション(C :, D :, E :, F :,など)のNTFS MasterFileTable/USNジャーナルを使用しています。ディレクトリ。少なくとも現在のパーティション内で一意の一意のファイル/ディレクトリ識別子は、あるWinApi/USN/MasterFileTableを使用して、すべてのディスクのすべてのファイルに一意のIDを割り当てる方法はありますか?
DWORDLONG FileReferenceNumber;
:
私はUSN_RECORD(とも呼ばれるPUSN_RECORD)を読んでいる間は、このint64型があります。
しかし、衝突があるかもしれません:
- Cでファイル:DにFileReferenceNumber 1932847
- に別のファイルを持つことができます:あまりにもFileReferenceNumber 1932847を持つことができます!
私はこのような大きなものを使用する必要がないようしたいと思いint128
(つまり、ドライブのFileReferenceNumber
+ 5ビットの64ビットとなり、文字C:、D:、E:... 、Z :)。
また、(char DriveLetter, DWORDLONG FileReferenceNumber)
のペアを使用してコンピュータ内のファイルを識別することを避けたいと考えています。
64ビットintをコード化する方法FileReferenceNumber
+ドライブレター?
FileReferenceNumber
には空きビットがいくつかありますか?
もしそうでなければ、どうしますか?
ドライブレターの使用は必ずしも十分ではありません。複数のボリュームを同じドライブ文字の下にマウントすることができます。 –
@HarryJohnston How?あなたは例を挙げることができますか? – Basj
https://technet.microsoft.com/en-us/library/cc753321(v=ws.11).aspx –