MFT の読み取り/書き込み方法の説明を探して Web をさまよいながら、次のセクションを見つけました:( http://www.installsetupconfig.com/win32programming/1996%20AppE_apnilife.pdf )
NtfsProtectSystemFiles が FALSE に設定されている場合、特殊ファイルを開くことができます。ただし、これを試みることにはいくつかの欠点があります。ボリュームをマウントするときに多くの特別なファイルが特別な方法で開かれるため、ZwReadFile への呼び出しから生じる IRP_MJ_READ 要求を処理する準備ができていません。そのようなリクエストを受信するとクラッシュします。これらの特殊ファイルは、ZwCreateSection と ZwMapViewOfSection で特殊ファイルをマッピングし、マッピングされたデータを読み取ることで読み取ることができます。さらなる問題は、いくつかの特殊ファイルが、ファイル オブジェクトへの最後のハンドルが閉じられたときに生成される IRP_MJ_CLEANUP 要求を処理する準備ができておらず、そのような要求が受信されるとシステムがクラッシュすることです。
- 「IRP_MJ_READ 要求を処理する準備ができていない」とはどういう意味ですか?どのような準備が必要ですか? IRP_MJ_READ とは何ですか?
- 「ZwCreateSection と ZwMapViewOfSection で特殊ファイルをマッピングし、マッピングされたデータを読み取る」それはどのように問題を解決しますか?
- 「ファイル オブジェクトへの最後のハンドルが閉じられたときに生成される IRP_MJ_CLEANUP 要求を処理するためのファイルの準備ができていない」とはどういう意味ですか? IRP_MJ_CLEANUP とは何ですか?
- 「特別なファイルへの開いているハンドルを決して終了しないプロセスに複製する」それはどのように問題を解決しますか?