Windows中的中断处理

Can*_*pus 7 windows interrupt

我想知道哪些线程处理设备中断.当用户模式线程运行时出现中断时会发生什么?当系统处理中断时,其他用户线程是否也有机会运行?

请建议我一些描述如何通过Windows处理中断的参考资料.

RBe*_*eig 3

设备中断本身(通常)由具有接受中断的 CPU 的任何线程处理,但在环 0 中且处于不同的保护级别。这限制了中断处理程序可以执行的一些操作,因为大多数时候当前线程不会与正在等待中断指示的事件发生的线程相关。

内核本身是闭源的,仅通过其内部 API 进行记录。该 API 向设备驱动程序作者公开,并在驱动程序开发工具包中进行了描述。

一些帮助您入门的资源:

  • Solomon 和 Russinovich 所著的任何版本的Microsoft Windows Internals 。当前似乎是第四版,但即使是旧版本也会有所帮助。

  • Windows DDK,现已更名为WDK。它的文档也可以在线获取。请务必阅读内核模式设计指南...

  • Sysinternals有工具和文章来探究和解释内核的行为。这曾经是一个独立的站点,直到 Microsoft 厌倦了 Mark Russinovich 似乎比他们更了解内核的工作原理。;-)

请注意,许多常见设备驱动程序的源代码都包含在示例的 DDK 中。尽管生产版本几乎肯定有所不同,但即使您不想自己实现驱动程序,阅读示例驱动程序也可以回答一些问题。