Функция ResetWriteWatch (memoryapi.h)
Сбрасывает состояние отслеживания записи для области виртуальной памяти. Последующие вызовы функции GetWriteWatch передают только те страницы, на которые записываются после операции сброса.
64-разрядная версия Windows в системах на основе Itanium: Из-за разницы в размерах страниц ResetWriteWatch не поддерживается для 32-разрядных приложений.
Синтаксис
UINT ResetWriteWatch(
[in] LPVOID lpBaseAddress,
[in] SIZE_T dwRegionSize
);
Параметры
[in] lpBaseAddress
Указатель на базовый адрес области памяти, для которой требуется сбросить состояние отслеживания записи.
Этот адрес должен находиться в области памяти, выделенной функцией VirtualAlloc с MEM_WRITE_WATCH.
[in] dwRegionSize
Размер области памяти, для которой сбрасываются данные отслеживания записи, в байтах.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение равно 0 (ноль).
Если функция завершается сбоем, возвращаемое значение будет ненулевым.
Комментарии
Функция ResetWriteWatch может быть полезна для таких приложений, как сборщик мусора. Приложение вызывает функцию GetWriteWatch для получения списка записанных страниц, а затем выполняет запись на эти страницы в рамках операции очистки. Затем сборщик мусора вызывает ResetWriteWatch , чтобы удалить записи отслеживания записи, вызванные очисткой.
Вы также можете сбросить состояние отслеживания записи в области памяти, указав WRITE_WATCH_FLAG_RESET при вызове GetWriteWatch.
При использовании ResetWriteWatch необходимо убедиться, что потоки не записываются в регион в течение интервала между вызовами GetWriteWatch и ResetWriteWatch . В противном случае могут быть записанные страницы, которые вы не обнаружите.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | memoryapi.h (включая Windows.h, Memoryapi.h) |
Библиотека | onecore.lib |
DLL | Kernel32.dll |