在Windows的默认页面错误处理程序执行完之后,如何运行我的代码?

时间:2013-07-23 15:38:31

标签: x86 masm osdev

出于某种原因,我想在执行windows的页面错误处理程序之后运行我的代码,以确保页面现在位于physcial内存中。我使用下面的代码作为新的int 0E处理程序:

    pushfd                      // eflags
    push cs
    call __Next
__Next:
    add dword ptr [esp], 0x0E           // eip
    push dword ptr [esp + 0x0C]         // error code
    jmp OldInt0EHandler
    // After the int 0e has run, EIP returns here.
    // TODO: add code here after the code has done
    add esp, 4
    iretd

但是当我用新的处理程序替换处理程序时,我得到了BSOD。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您必须禁用Windows内核修补程序保护才能执行此操作。否则,它会出于(明显的)安全原因触发BOSD。