• 締切済み

ページングの解放

例えば WindowsXP で、物理メモリが足らなくなれば、ページングファイル 上に退避する機能がありますが、物理メモリの空きが増えてページングに 退避しているデータを戻す余地ができた場合に、それを行う、それを促す 方法はありますでしょうか? そのままの目的に沿う Win32API や、例えばページングの使用量を変更 させる方法、ページングファイルのサイズを小さくする方法、ページング ファイルのサイズを増やすことなくページングファイル内から確保する 関数など、なんかないでしょうか?

みんなの回答

回答No.3

御協力を致せるかも知れませんから、近況を教えて下さいませ。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

なにもかにも人に頼らず ご自分で調べて見ては、 検索キーワード; Win32API ページング ファイル

kan_chan
質問者

補足

検索してから、MSDN とかを見てから、聞くのは当然でしょう。 逆のこと(物理メモリからページングファイルに退避させること)は VirtualAlloc でできますが、HeapAlloc(GlobalAlloc,LocalAlloc) や、 VirtualAlloc() でページング内の領域を確保できても、 他のページングされた領域を物理メモリに戻す可能性もなさげで、 単にページングファイルのサイズを広げるだけになりそうですよね。 ページングファイルの空きの(ファイルの最大値を考慮しての)最大限を 取得しても、たぶん、「仮想メモリが足らない」旨のメッセージボックス が出るでしょうし。 他のProcessのHeapを勝手に解放もできませんよね。 退避している全てを戻せないと思うので、一部(ずつ)戻させたいのです。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpmemory/html/Toppage_MemoryManagement.asp http://msdn2.microsoft.com/en-us/library/ms810627.aspx http://msdn2.microsoft.com/en-us/library/ms810466.aspx なんかないでしょうか?

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

詳細は、下記を参考に 仮想メモリのページング ファイルのサイズを変更する方法 http://support.microsoft.com/kb/308417/ja

kan_chan
質問者

補足

それをする、Win32API とかを知りたいのですが。 カーネル内部でしかできないのかな?