2009-10-26 36 views
2

我在內存中有一大塊數據,我不想讓Windows訪問頁面。內存是可以從磁盤上的文件重建的一部分數據的緩存。只要有足夠的內存可用,緩存就意味着完全防止硬盤訪問,所以如果Windows開始分頁,那對我來說毫無價值。如果需要,我希望我的應用程序只需釋放內存(as mentioned in this post),而不是分頁。防止Windows分頁某些數據

有沒有辦法將內存塊分配爲不可分頁?

回答

1

VirtualLock()可能是你在找什麼。 Raymond Chen有更多的信息here

+0

我相信Raymond的信息不再適用。這在2007年可能是真的,但[我的實驗](http://stackoverflow.com/a/15001077/33080)表明,即使沒有線程可運行,內存仍將映射到物理頁面,無論內存有多少壓力。所以[MSDN](http://msdn.microsoft.com/en-gb/library/windows/desktop/aa366895%28v=vs.85%29.aspx)是一次正確的。 –