Win32系统在处理器定义以外是否支持中断?例如,x86机器至少定义了18个中断,包括陷阱(如INT 3)等。英特尔留下的其他19-255个中断为软件定义中断。这些中断是否被Windows/WinAPI使用,还是只是开放和供应用程序随意使用?如果Windows使用它们,那么我在哪里可以找到相关文档?我在MSDN上查找并没有发现任何信息。(顺便说一句,我正在进行编译器、调试器和其他系统级编程,所以请不要就是否使用中断向我发表您的意见。)
int 2Eh
,它被用作系统调用入口点。这类似于DOS中的int 21h
。其他中断不被应用程序使用。SEH
) / 矢量异常处理(VEH
)来处理一些CPU异常(和调试断点)。Windows会捕获源自应用程序的CPU异常,并尽可能地将其反射回应用程序中(Windows无法完美模拟CPU异常模型)。DDK
)和书籍如《Windows Internals》可帮助您入门。int
指令将切换CPU到内核模式。您需要在内核侧编写一些代码来赋予此异常一个含义。同样,硬件中断也会将CPU切换到内核模式,因此需要相同的操作。 - Alexey Frunze