問題タブ [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.

0 投票する
3 に答える
873 参照

c# - C# で Windows NTFS $Secure ファイル (および/または $SDS ストリーム) をプログラムで読み取るにはどうすればよいですか?

.NET プラットフォームの DirectorySecurity 名前空間 (GetAccessRules() など) のメソッドは、私の目的には遅すぎます。代わりに、NTFS $Secure メタファイル (または、代わりに $SDS ストリーム) を直接クエリして、各ファイル システム オブジェクトのローカル アカウントとそれに関連付けられたアクセス許可のリストを取得したいと考えています。

私の計画は、最初に $MFT メタファイルを読み取り (方法は既に理解しています)、次に、その中の各エントリについて、メタファイル (またはストリーム) 内の適切なセキュリティ記述子を検索することです。

理想的なコード ブロックは次のようになります。

そして、出力を次のようにしたいと思います。

Windows 10 で .NET バージョン 4.7.1 を実行しています。

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

c++ - すべてのパーティションを列挙し、それらが NTFS かどうかをテストします

私は使用しています:

コンピューターのすべての NTFS パーティションを列挙します。

Windows 7、試用した Windows 8.1、および Windows 10 コンピューターで動作します。

しかし、別の Windows 10 コンピューターでは失敗します。このコンピューターでは、ボリュームC:の値が( )ではなく にdiskInfo.PartitionType等しくなります。0x000x07PARTITION_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ます。