首页
社区
课程
招聘
[求助]关于windows internals这本巨著的一个困惑
2015-4-29 17:39 3755

[求助]关于windows internals这本巨著的一个困惑

2015-4-29 17:39
3755
第三章中提到 x86单处理器系统上中断映射IRQL的关系是IRQL减去27得到IRQ,而我却得到一个无法理解的实验结果,如下所示:
kd> !idt -a

Dumping IDT:

2a:	8053e9de nt!KiGetTickCount
2b:	8053eae0 nt!KiCallbackReturn
2c:	8053ec80 nt!KiSetLowWaitHighThread
2d:	8053f5c0 nt!KiDebugService
2e:	8053e481 nt!KiSystemService
2f:	80541780 nt!KiTrap0F
30:	8053db40 nt!KiUnexpectedInterrupt0
31:	8053db4a nt!KiUnexpectedInterrupt1
32:	8053db54 nt!KiUnexpectedInterrupt2
33:	8053db5e nt!KiUnexpectedInterrupt3
34:	8053db68 nt!KiUnexpectedInterrupt4
35:	8053db72 nt!KiUnexpectedInterrupt5
36:	8053db7c nt!KiUnexpectedInterrupt6
37:	806d2728 hal!PicSpuriousService37

得到键盘中断关联的中断对象的地址 31:        8053db4a nt!KiUnexpectedInterrupt1,然后:
kd> dt nt!_kinterrupt 8053db4a
   +0x000 Type             : 0n12648
   +0x002 Size             : 0n0
   +0x004 InterruptListEntry : _LIST_ENTRY [ 0x7d3e900 - 0x32680000 ]
   +0x00c ServiceRoutine   : 0xe9000000     unsigned char  +ffffffffe9000000
   +0x010 ServiceContext   : 0x000007c9 Void
   +0x014 SpinLock         : 0x3368
   +0x018 TickCount        : 0x7bfe900
   +0x01c ActualLock       : 0x34680000  -> ??
   +0x020 DispatchAddress  : 0xe9000000     void  +ffffffffe9000000
   +0x024 Vector           : 0x7b5
   +0x028 Irql             : 0x68 'h'
   +0x029 SynchronizeIrql  : 0x35 '5'
   +0x02a FloatingSave     : 0 ''
   +0x02b Connected        : 0 ''
   +0x02c Number           : 0 ''
   +0x02d ShareVector      : 0xe9 ''
   +0x030 Mode             : 0x36680000 (No matching name)
   +0x034 ServiceCount     : 0xe9000000
   +0x038 DispatchCount    : 0x7a1
   +0x03c DispatchCode     : [106] 0x3768

这里+0x028 Irql             : 0x68 'h',
中断级别怎么算也不可能是这么奇怪的值呀,求解释啊!谢谢!
注:用于调试的虚拟机环境是windows xp sp3,单处理器的

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 69
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hhxlovety 2015-4-30 09:16
2
0
人家书里指的是hal中断,你这是nt提供的中断啊
雪    币: 14
活跃值: (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
西门狂客 2015-4-30 10:02
3
0
单处理器系统不是只有一张idt表吗?怎么还分hal和nt啊?恕我孤陋寡闻,求详细解释,万分感激!
游客
登录 | 注册 方可回帖
返回