Windowsの再起動で同じリソースにアクセスする
-
06-07-2019 - |
質問
システムのシャットダウンまたはサービスのシャットダウンの直前に、ファイル/メモリに何かを書き込みます。システムの次の再起動では、ファイルシステムがロードされる前に、ディスク上の同じファイルまたは同じメモリにアクセスできますか?実際の要件は次のとおりです。ボリュームレベルドライバーとファイルシステムドライバーの間にあるドライバーがあります。ドライバーコードのその部分で、メモリまたはファイルにアクセスしたいです。
ありがとう&よろしく、
カルバン
解決
ここでの論理的なことは、大きすぎない場合、これをレジストリに読み書きすることです。レジストリを使用したくない理由はありますか?
大きなデータにアクセスする必要があり、ボリュームまたはデバイスフィルターを作成していて、カーネルのZwOpen / Read / Write / Close関数に依存できない場合、ユーザーモードでファイルを作成する方法は、デバイス名を取得しますクラスターチェーンし、レジストリに保存します。次回の起動時に、レジストリからデバイスとクラスターを取得し、それらに対して直接I / Oを実行できます。
他のヒント
ファイルシステムがロードされる前にこれにアクセスしたいので、最初に考えたのは、ファイルシステム外のハードドライブ上のストレージスペースのブロックを割り当てて使用することです。ドライブに非表示のミニパーティションを作成し、低レベルのI / Oコマンドを使用してデータを読み書きできます。
これは組み込みシステムの世界では一般的なタスクであり、多くの場合、何らかの不揮発性メモリデバイス(フラッシュ、バッテリーバックアップDRAMなど)をシステムに追加し、そのデバイスに対して読み書きを行うことで実装します。組み込みの開発者と同じレベルのハードウェアを制御できない可能性が高いため、考えられる最も近い類似点は、マウントすることなく読み取り可能な物理ディスク上の領域のチャンクを予約することですファイルシステム。専用のミニパーティションは、そのサイズがわかっている場合、1つの大きなrawアクセスバッファーとして扱うことができ、ファイル名、ファイルシステムなどに煩わされることを避けることができるため、最適に機能する可能性があります。