ResetWriteWatch 函式 (memoryapi.h)
重設虛擬記憶體區域的寫入追蹤狀態。 後續呼叫 GetWriteWatch 函式時,只會對自重設作業以來寫入的報表頁面。
Itanium 系統上的 64 位 Windows: 由於頁面大小的差異,32 位應用程式不支援 ResetWriteWatch 。
語法
UINT ResetWriteWatch(
[in] LPVOID lpBaseAddress,
[in] SIZE_T dwRegionSize
);
參數
[in] lpBaseAddress
要重設寫入追蹤狀態之記憶體區域的基底位址指標。
此位址必須位於 VirtualAlloc 函式所配置的記憶體區域中,且具有 MEM_WRITE_WATCH。
[in] dwRegionSize
要重設寫入追蹤資訊的記憶體區域大小,以位元組為單位。
傳回值
如果函式成功,傳回值為 0 (零) 。
如果函式失敗,則傳回值是非零值。
備註
ResetWriteWatch函式對垃圾收集行程之類的應用程式很有用。 應用程式會呼叫 GetWriteWatch 函式來擷取已寫入的頁面清單,然後寫入這些頁面作為清除作業的一部分。 然後垃圾收集行程會呼叫 ResetWriteWatch ,以移除清除所造成的寫入追蹤記錄。
您也可以在呼叫GetWriteWatch時指定WRITE_WATCH_FLAG_RESET來重設記憶體區域的寫入追蹤狀態。
如果您使用 ResetWriteWatch,則必須確保 GetWriteWatch 和 ResetWriteWatch 呼叫之間的間隔期間,沒有任何執行緒寫入區域。 否則,可能會有未偵測到的寫入頁面。
需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | memoryapi.h (包括 Windows.h、Memoryapi.h) |
程式庫 | onecore.lib |
DLL | Kernel32.dll |