Функция ResetWriteWatch сбрасывает состояние слежения за записью для некоторой области виртуального адресного пространства процесса. При дальнейшем использовании функции GetWriteWatch для указанного диапазона будут получены только те страницы, в которые производилась запись после вызова ResetWriteWatch.
function ResetWriteWatch( lpBaseAddress: Pointer; // начальный базовый адрес dwRegionSize: DWORD // размер региона памяти ): Cardinal; stdcall;
Параметры
lpBaseAddress [in]
Начало области памяти, для которой будет произведено сбрасывание состояния
записи. Указанный адрес должен находиться внутри диапазона памяти, выделенного
функций VirtualAlloc с флагом MEM_WRITE_WATCH.
dwRegionSize [in]
Задает размер области памяти в байтах, для которой будет произведено
сбрасывание состояния записи.
Возвращаемое значение
В случае успешного завершения функция возвращает нуль
В случае ошибки функция возвращает ненулевое значение.
Описание
Функция ResetWriteWatch может быть полезна таким функциям, как сборщики мусора. Вначале приложение производит запись во все страницы памяти, за которой было произведено слежение. После чего происходит вызов функции GetWriteWatch, для того, чтобы получить список всех страниц, в которые производилась запись. Потом определяются те страницы, в которые запись не производилась, которые и освобождаются. В конце следует вызов функции ResetWriteWatch для того, чтобы сбросить состояние слежения за памятью.
Вы также можете сбросить флаг состояния слежения за записью при помощи вызова функция GetWriteWatch с флагом WRITE_WATCH_FLAG_RESET.
Если вы используете функцию ResetWriteWatch, то любая информации о записи в указанный регион в промежутках между вызовами GetWriteWatch и ResetWriteWatch является потерянной. Вы должны поступить таким образом либо в том случае, когда твердо уверенны в том, что в указанный промежутов времени не производилась запись по указанным адресам, либо в том случае, когда эта информация не представляет для вас интереса.
Требования
Windows NT/2000: Не поддерживается
Windows 95/98: Требуется Windows 98 или более поздняя версия
Бибиотека: Kernel32.dll
Подключаемый модуль: Не описана
Смотри также:
виртуальная память, работа с виртуальной памятью, список функций для работы с виртуальной памятью, GetWriteWatch, VirtualAlloc
GlobalMemoryStatusEx |
VirtualAlloc![]() |
© Mystic, 2002