1

我是编写 Windows 设备驱动程序的新手。

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

根据此处,Windows 设备驱动程序 ISR 是可中断的: MSDN:Writing an ISR

4

1 回答 1

0

您在链接中指定的文档说的是: 1. 当一个中断 [DIRQL] 被提出时,一般规则是该设备的所有中断并且小于该设备的 IRQL。2. 当 ISR 正在执行并且具有更高 DIRQL 中断的设备中断时,将调用具有更高 DIRQL 设备的 ISR...

所以链接中指定的语句指向我上面提到的点。

于 2016-07-12T17:09:49.553 回答