2014-09-26 27 views
1

我是新写Windows设备驱动程序。为什么Windows设备驱动程序中断服务程序(ISR)是可中断的?

我的理解是,在x86处理器被中断(当CPU的INTR线由器件触发时)的硬件级,处理器清除EFLAGS寄存器的中断标志位以禁用中断,然后执行中断服务程序(ISR)。所以通常情况下,x86 ISR在完成其工作并发出IRET指令之前不能再次中断。但为什么Windows ISR是可中断的? Windows ISR与处理器的ISR相同吗?

Windows设备驱动程序ISR根据这里是中断: MSDN:Writing an ISR

+0

处理器标志由DIRQL虚拟化,主要是为了确保设备驱动程序不能滥用它并让中断在长时间内处于禁用状态。 – 2014-09-26 10:15:11

回答

0

什么或你在链接中指定的文件说的是: 1.当中断[DIRQL]提高总的原则是所有的中断用于该设备并且小于该设备的IRQL。 2.当一个ISR正在执行,并且一个具有较高DIRQL中断的设备时,那么具有较高DIRQL的设备的ISR将被称为...

因此,链接中指定的语句指向上述点。