我是编写Windows设备驱动程序的新手。
我的理解是在硬件级别当x86处理器被中断时(当设备触发CPU的INTR线路时),处理器清除EFLAGS寄存器的中断标志位以在执行中断之前禁用中断服务套路(ISR)。通常情况下,x86 ISR在完成其工作并发出IRET指令之前不能再次中断。但为什么Windows ISR可以中断? Windows ISR与处理器的ISR相同吗?
Windows设备驱动程序ISR根据此处可中断: MSDN:Writing an ISR
答案 0 :(得分:0)
您在链接中指定的文档是: 1.当引发中断[DIRQL]时,一般规则是该设备的所有中断,并且小于该设备IRQL。 2.当ISR正在执行且具有更高DIRQL中断的设备时,将调用具有更高DIRQL的设备的ISR ...
所以链接中指定的语句指向上面提到的点。