Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› PAGE_FAULT_IN_NONPAGED_AREA |
Посл.ответ | Сообщение |
|
Создано: 05 августа 2008 12:22 · Личное сообщение · #1 Собственно, вопрос следйющий: в нулевом кольце имеем исключение PAGE_FAULT_IN_NONPAGED_AREA. В одном и том же коде оно происходит не постоянно, а, в принципе, достаточно редко, что делает практически невозможным как моделирование ошибки, так и обработку её по конструкции .if ... .endif. SEH в том виде, в котором он используется в третьем кольце защиты стандартно, ошибку не обрабатывает, внимание вопрос - Как же тогда предотвратить появление синего экрана? ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 05 августа 2008 19:06 · Личное сообщение · #2 |
|
Создано: 05 августа 2008 21:30 · Личное сообщение · #3 |
|
Создано: 11 августа 2008 13:50 · Личное сообщение · #4 MoonShiner Спасибо за совет, но я нашёл лучшее, и в принципе, документированное решение, перед обращением к странице, которая отсутствует в памяти, вызываем функцию MmIsValidAddress с указателем на эту самую память: invoke MmIsValidAddress,edx например так, а далее если в еах ноль, значит адрес невалидный. Archer Про криво написал - тут ты не прав, я ж не виноват,что после выполнения функций в ядре страница иногда выгружена, и указатель указывает туда куда не надо. Для справок, данная техника применяется для перехвата функции по KDT. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
![]() |
eXeL@B —› Программирование —› PAGE_FAULT_IN_NONPAGED_AREA |
Эта тема закрыта. Ответы больше не принимаются. |