問題タブ [ntfs-mft]
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.
c# - C# で Windows NTFS $Secure ファイル (および/または $SDS ストリーム) をプログラムで読み取るにはどうすればよいですか?
.NET プラットフォームの DirectorySecurity 名前空間 (GetAccessRules() など) のメソッドは、私の目的には遅すぎます。代わりに、NTFS $Secure メタファイル (または、代わりに $SDS ストリーム) を直接クエリして、各ファイル システム オブジェクトのローカル アカウントとそれに関連付けられたアクセス許可のリストを取得したいと考えています。
私の計画は、最初に $MFT メタファイルを読み取り (方法は既に理解しています)、次に、その中の各エントリについて、メタファイル (またはストリーム) 内の適切なセキュリティ記述子を検索することです。
理想的なコード ブロックは次のようになります。
そして、出力を次のようにしたいと思います。
Windows 10 で .NET バージョン 4.7.1 を実行しています。
c++ - すべてのパーティションを列挙し、それらが NTFS かどうかをテストします
私は使用しています:
コンピューターのすべての NTFS パーティションを列挙します。
Windows 7、試用した Windows 8.1、および Windows 10 コンピューターで動作します。
しかし、別の Windows 10 コンピューターでは失敗します。このコンピューターでは、ボリュームC:
の値が( )ではなく にdiskInfo.PartitionType
等しくなります。0x00
0x07
PARTITION_IFS
この値は次のとおりです (こちらのドキュメントを参照してください):
PARTITION_ENTRY_UNUSED : 0x00 : 未使用のエントリ パーティション。
パーティションが実際には NTFS であることを確認できるため、これは奇妙です。
質問:
IOCTL_DISK_GET_PARTITION_INFO
パーティションの種類を取得するのに 100% 信頼できないことはよく知られていますか?すべての NTFS ボリュームを列挙するより信頼性の高い方法は何ですか?
注:IOCTL_DISK_GET_PARTITION_INFO_EX
代わりにの使用も調べましIOCTL_DISK_GET_PARTITION_INFO
たが、構造PARTITION_INFORMATION_EX
は に関する情報を提供していないようですがPartitionType
、構造は へのPARTITION_INFORMATION
アクセスを提供しPartitionType
ます。