OfferVirtualMemory 函式 (memoryapi.h)
表示應用程式不再需要包含在一系列記憶體頁面中的數據,並視需要由系統捨棄。
指定的頁面將會標示為無法存取、從進程工作集移除,而且不會寫入至分頁檔案。
若要稍後回收所提供的頁面,請呼叫 ReclaimVirtualMemory。
語法
DWORD OfferVirtualMemory(
[in] PVOID VirtualAddress,
[in] SIZE_T Size,
[in] OFFER_PRIORITY Priority
);
參數
[in] VirtualAddress
要提供之內存的頁面對齊起始位址。
[in] Size
要提供之內存區域的大小,以位元組為單位。 Size 必須是系統頁面大小的整數倍數。
[in] Priority
優先順序 表示提供記憶體對應用程式的重要性。 較高的優先順序會增加在呼叫 ReclaimVirtualMemory 時,可以完整回收所提供記憶體的可能性。 系統通常會捨棄優先順序較低的記憶體,再捨棄較高的優先順序記憶體。 優先順序 必須是下列其中一個值。
傳回值
如果成功,ERROR_SUCCESS;否則為 系統錯誤碼 。
備註
若要回收提供的頁面,請呼叫 ReclaimVirtualMemory。 回收頁面中的數據可能已捨棄,在此情況下,記憶體區域的內容未定義,而且必須由應用程式重寫。
請勿呼叫 OfferVirtualMemory 來提供鎖定的虛擬記憶體。 這麼做會將指定的頁面範圍解除鎖定。
請注意,供應和回收虛擬記憶體類似於使用MEM_RESET和MEM_RESET_UNDO記憶體配置旗標,不同之處在於 OfferVirtualMemory 會從進程工作集移除記憶體,並限制存取所提供的頁面,直到回收為止。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 更新版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | memoryapi.h (包括 Windows.h、Memoryapi.h) |
程式庫 | onecore.lib |
DLL | Kernel32.dll |