1
我是新寫Windows設備驅動程序。爲什麼Windows設備驅動程序中斷服務程序(ISR)是可中斷的?
我的理解是,在x86處理器被中斷(當CPU的INTR線由器件觸發時)的硬件級,處理器清除EFLAGS寄存器的中斷標誌位以禁用中斷,然後執行中斷服務程序(ISR)。所以通常情況下,x86 ISR在完成其工作併發出IRET指令之前不能再次中斷。但爲什麼Windows ISR是可中斷的? Windows ISR與處理器的ISR相同嗎?
Windows設備驅動程序ISR根據這裏是中斷: MSDN:Writing an ISR
處理器標誌由DIRQL虛擬化,主要是爲了確保設備驅動程序不能濫用它並讓中斷在長時間內處於禁用狀態。 – 2014-09-26 10:15:11