Windows中的中断处理

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

请向我建议一些参考资料,描述如何处理窗口中断。


设备中断本身(通常)由处理该中断的CPU的任何线程处理,但是在环形0中并且处于不同的保护级别。 这限制了中断处理程序可以采取的一些操作,因为大部分时间当前线程不会与正在等待中断正在指示的事件发生的线程相关。

内核本身是封闭源代码,并且只通过其内部API进行记录。 该API暴露给设备驱动程序作者,并在驱动程序开发工具包中进行了描述。

一些资源让你开始:

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

  • Windows DDK现在改名为WDK。 其文档也可以在线获得。 一定要阅读内核模式设计指南...

  • Sysinternals有工具和文章来探究和解释内核的行为。 这是一个独立的网站,直到微软厌倦了Mark Russinovich似乎更了解内核如何工作。 ;-)

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


    像任何其他操作系统一样,Windows在内核模式下处理中断,并提升中断优先级(我认为他们称之为IRPL,但我不知道“R”代表什么)。 在处理中断请求时,在同一台机器上运行的任何用户线程或较低级别的内核线程将中断,并且在中断处理完成时将被恢复。


    为了更多地了解Windows上的设备中断,您需要研究设备驱动程序开发。 这是一个小众话题,我认为你不能在网上找到许多有用的资源,你可能不得不寻找一本书或一门培训课程。

    无论如何,Windows通过中断请求级别(IRQL)和延迟过程调用处理中断。 在内核模式下处理中断,该模式的运行优先级高于用户模式。 一个合适的中断处理程序需要非常快速地做出反应 它只执行绝对必要的操作并注册延期程序调用以便将来运行。 当系统处于中断请求级别时,会发生这种情况。

    链接地址: http://www.djcxy.com/p/42523.html

    上一篇: Interrupt processing in Windows

    下一篇: Is it possible to get sub