Microsoft windows internals 学习笔记(3)

中断对象:

内核提供了一种可移植的机制使得使得设备驱动程序可以为他们的设备注册ISR,是一个称为中断对象的内核控制对象。中断对象包含了所有“供内核将一个设备的ISR与一个特定级别的中断关联起来而需要的信息。”包括ISR地址,该设备中断时所在的IRQL以及域该ISR相关联的IDT。

 

调试器可以查看中断对象的细节:

!idt打开中断描述符表信息

lkd> dt nt!_kinterrupt 89c97918
nt!_KINTERRUPT
   +0x000 Type             : 22
   +0x002 Size             : 484
   +0x004 InterruptListEntry : _LIST_ENTRY [ 0x89c9791c - 0x89c9791c ]
   +0x00c ServiceRoutine   : 0xba6105e0     unsigned char +ffffffffba6105e0 ;指向服务例程
   +0x010 ServiceContext   : 0x89c99030
   +0x014 SpinLock         : 0
   +0x018 TickCount        : 0xffffffff
   +0x01c ActualLock       : 0x89c97b7c -> 0
   +0x020 DispatchAddress : 0x805459e0     void nt!KiInterruptDispatch+0
   +0x024 Vector           : 0x162
   +0x028 Irql             : 0x5 ''                           ; IRQL=27-0x5,x86单处理器从27减去IRQ得到
   +0x029 SynchronizeIrql : 0x5 ''
   +0x02a FloatingSave     : 0 ''
   +0x02b Connected        : 0x1 ''
   +0x02c Number           : 0 ''
   +0x02d ShareVector      : 0 ''
   +0x030 Mode             : 1 ( Latched )
   +0x034 ServiceCount     : 0
   +0x038 DispatchCount    : 0xffffffff
   +0x03c DispatchCode     : [106] 0x56535554       ;存放实际执行中断代码

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值