X86 在windows的默认页面错误处理程序执行之后,如何运行代码?
出于某种原因,我希望在执行windows的页面错误处理程序后运行代码,以确保页面现在位于物理内存中。我使用下面的代码作为新的int 0E处理程序:X86 在windows的默认页面错误处理程序执行之后,如何运行代码?,x86,masm,osdev,X86,Masm,Osdev,出于某种原因,我希望在执行windows的页面错误处理程序后运行代码,以确保页面现在位于物理内存中。我使用下面的代码作为新的int 0E处理程序: pushfd // eflags push cs call __Next __Next: add dword ptr [esp], 0x0E // eip push dword ptr [esp + 0x0C] // error co
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。如何正确操作?要做到这一点,您必须禁用Windows内核修补程序保护。否则,出于(明显的)安全原因,它将触发BOSD。您必须禁用Windows内核补丁保护才能执行此操作。否则,出于(明显的)安全原因,它将触发BOSD。一旦修改中断处理程序,Windows内核补丁保护将触发BSOD,因此我认为这是不可能的。你到底需要它做什么?只要你修改中断处理程序,Windows内核补丁保护就会触发BSOD,所以我认为这是不可能的。你到底需要这个做什么?