-1

ハードドライブ上のファイルを削除するC++プログラムがあります。したがって、プログラムはパーティションの先頭から読み込みを開始し、有効な署名が見つかるたびにそれを読み込み、ファイルの種類に応じてファイルサイズを見つけます。ウィンドウ内のオフセットとサイズでRAMにファイルをマップする方法

次に、ファイルの開始サイズとオフセットをデータベースに保存します。 このプロセスが完了したら、私はいくつかのアナライザにファイルを与えたいです!

私が今やっていることは、ハードにファイルを回復し、そのアドレスをアナライザーに与えることです。しかし、それは長すぎます。

これらのファイルを仮想ファイルシステムによってロードして、ファイルアドレスオフセットとファイルサイズを取得し、そのファイルを解析プログラムが読み取ることができる仮想アドレスをfopen()にしたいのですが、速くなりますが、パーティションにファイルを書きたい。

実際、ファイルはパーティションに存在しますが、ファイルシステムテーブルには存在しませんでした。

この方法で解決策はありますか?

答えて

0

あなたが知っておく必要がある簡単なトリックがあります。ご承知の通りCreateFileに電話してください。FILE_ATTRIBUTE_TEMPORARYに合格してください。これは、使用直後にファイルを削除しようとするため、WindowsにファイルをRAMに保存するというヒントです。

FILE_FLAG_DELETE_ON_CLOSEを渡して、自分で簡単にすることもできます。

+0

ファイルをディスクに保存したくありません。私はファイルのオフセットとサイズを持っていますし、hard.Inの上にwrittingせずにファイルとしてramに持っていきたいと思っています。それはパーティションのwhitout上の何かをハードにする –

+0

まあ、あなたはそれがRAMにあるかどうか分からないのですか?仮想アドレス空間を持つ現代的なOSではありません。 RAMに入っていると思うかもしれませんし、実際にはディスクにスワップアウトされています。逆に、ディスク上にあると思うかもしれませんが、実際にはファイルキャッシュにあります。私はあなたが言っていることを知っていますが、Windowsがあなたの精神モデルにどれほど似ているかも知っています。 – MSalters

関連する問題