中断服务例程 学习

设备触发中断后进入的例程

当进入中断服务例程后,IRQL会提升到设备对应的IRQL级别


传统PC用2片 中断控制器8259A 芯片级联-》16个中断信号源 0-15  多个设备可以共享一个中断号

新的PC使用新的中断控制器,将中断信号扩展到24个

Windows 将中断的概念继续拧扩展   32个中断级别 IRQL

0-2 级别 PASSIVE_LEVEL 到  DISPATCH_LEVEL 软中断

3-31 硬件中断  

0-31 级别逐次升高

一般线程在0 界别,负责调度线程的内核代码运行再1 级别

DDK把硬件中断称为 DIRQL


中断服务例程 ISR

发生硬件设备的中断信号后,DIRQL级别下,系统调用相应的ISR

驱动程序使用ISR 

1)首先 获得 中断对象  (INTERRUPT的数据结构) DDK驱动和 WDM驱动不同  以后学习

2)IoConnectInterrupt 将中断对象和ISR 联系起来,这样中断信号来临时就会进入 ISR处理

ISR运行再DIRQL级别

为了不让ISR打断运行,秩序将IRQL提升至相应的DIRQL即可

与ISR 函数同步的函数

BOOLEAN 
  KeSynchronizeExecution(                         //Synchronize 是同步的意思
    IN PKINTERRUPT    Interrupt,              
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值