![]() |
Write Watch в памяти выделеной CreateFileMapping/MapViewOfFile
Пытаюсь задействовать Write Watch на память выделенную CreateFileMapping/MapViewOfFile (Shared memory)
Если бы пользовался VirtualAlloc, использовал бы MEM_WRITE_WATCH флаг. Но в моем случае это не подходит Помогите пожалуйста. |
какбэ MMF совсем другой механизм, неподдерживающий write watch.
|
Да, я понимаю, но тем не менее хочу это как то осуществить. Пусть это называется не write watch а как то по другому. Мне нужно знать приблизительно какие районы выделенной памяти были изменены.
|
http://forum.antichat.ru/showthread.php?p=1496972#post1496972
вот по мотивам этого можешь. на регион - PAGE_EXECUTE_READ KiUserExceptionDispatcher)(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextFrame); ловишь STATUS_ACCESS_VIOLATION в контексте фрейма и записи все что надо есть |
правда там адрес который выдал исключение
|
Спасибо!
Однако, ну поймал, а дальше что? Записаться то оно должно, а кроме того, может ведь одной страницей и не ограничиться. Отключить protection? Тогда как узнаю где оно остановилось? |
дык строй таблицу по страницам региона. И при перехвате исключения взводи флаг соответствующий. Для оптимизации лучше снимать =\ но пипец какже это будет медленно всё ... кривое имхо решение, лучше пересматривай алго свой, чтобы уйти от этого =\
"... правда там адрес который выдал исключение ..." и что? на x86 страницы одинаковые + мы знаем imagebase MMF + даже если бы не знали, гранулярность какбэ есть ^______^ |
| Время: 01:51 |