ドライブが初期化されたか、NTFSパーティションが作成されたかを判断するのに非常に役立つクライアントがあります。どこかにタイムスタンプ値がありますか?誰かが何かアドバイスをすることができれば、それは大歓迎です。
ありがとう!
-slashp
ドライブが初期化されたか、NTFSパーティションが作成されたかを判断するのに非常に役立つクライアントがあります。どこかにタイムスタンプ値がありますか?誰かが何かアドバイスをすることができれば、それは大歓迎です。
ありがとう!
-slashp
回答:
CIFSトランザクションはでTRANS2_QFSINFO
あり、情報レベルはSMB_QUERY_FS_VOLUME_INFO
です。ボリュームの作成時間を照会するためのネイティブWindows NT API関数はですZwQueryVolumeInformationFile()
。これは、情報FILE_FS_VOLUME_INFORMATION
のFileFsVolumeInformation
クラスを要求されたときにデータ構造(CIFSのものとほぼ同じ、注)を生成します。このクエリが機能することをテストすることは、Microsoftがドライバー開発者に提供するIFSテスターの一部です。
興味深いことに、ボリュームを照会してその作成タイムスタンプを人間が読める形式で出力するだけの便利なユーティリティを書いた人は誰もいないようです。1 私が知る限り、最も近いものは、SysInternalsのprocmon
ツールを起動し、ストリーミングするボリューム情報クエリを探すことです。おそらくこれを読んでいる人は、強化されたvol
コマンドを作成することに触発されるでしょう。
はい、ボリューム作成タイムスタンプは適切に初期化されており、ゼロやその他の定数に設定されているだけではありません。私はチェックしていませんが、この情報の保管場所についての経験に基づいた推測$STANDARD_INFORMATION
は、$Volume
MFTエントリの属性です。私は他に3つの可能な場所を考えることができますが、それは最も論理的な場所です。
1grawity
のユーティリティには、FileTimeToSystemTime()
との単純な使用を含め、もう少し磨きをかけるだけGetTimeFormat()
で、頭の中でWin32タイムスタンプをデコードできないエンドユーザーが使用できるようになります。☺
NTFSに組み込まれていることを知っている「ボリューム作成日」はありません。ただし、System Volume Information
ボリュームのルートにあるディレクトリの作成日を調べることにより、作成日を非常に厳密に概算できるはずです。