首页
社区
课程
招聘
[求助]IDT中断门问题
发表于: 2010-4-16 17:32 5765

[求助]IDT中断门问题

2010-4-16 17:32
5765
在内核中新增一个自定义的中断函数

_asm sidt idtr

idt_addr = (void *)idtr.base;

for(i=0x20;i<0x2a;i++)
{
        // 如果类型为0说明是空闲位置,返回即可。
     if(idt_addr[i].type == 0)
        {
        return i;
        }
}

在搜索空闲空间位置的时候为什么只需要搜索0x20----0x2a,而原键盘中断却在0x93,空闲的IDT位置怎么不在0x93以后却在这么前面呢- -!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 75
活跃值: (693)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
Dumping IDT:

00:        805431b0 nt!KiTrap00
01:        8054332c nt!KiTrap01
02:        Task Selector = 0x0058
03:        80543740 nt!KiTrap03
04:        805438c0 nt!KiTrap04
05:        80543a20 nt!KiTrap05
06:        80543b94 nt!KiTrap06
07:        8054420c nt!KiTrap07
08:        Task Selector = 0x0050
09:        80544610 nt!KiTrap09
0a:        80544730 nt!KiTrap0A
0b:        80544870 nt!KiTrap0B
0c:        80544ad0 nt!KiTrap0C
0d:        80544dbc nt!KiTrap0D
0e:        805454b8 nt!KiTrap0E
0f:        805457f0 nt!KiTrap0F
10:        80545910 nt!KiTrap10
11:        80545a4c nt!KiTrap11
12:        Task Selector = 0x00A0
13:        80545bb4 nt!KiTrap13
14:        805457f0 nt!KiTrap0F
15:        805457f0 nt!KiTrap0F
16:        805457f0 nt!KiTrap0F
17:        805457f0 nt!KiTrap0F
18:        805457f0 nt!KiTrap0F
19:        805457f0 nt!KiTrap0F
1a:        805457f0 nt!KiTrap0F
1b:        805457f0 nt!KiTrap0F
1c:        805457f0 nt!KiTrap0F
1d:        805457f0 nt!KiTrap0F
1e:        805457f0 nt!KiTrap0F
1f:        806e710c hal!HalpApicSpuriousService
20:        00000000
21:        00000000
22:        00000000
23:        00000000
24:        00000000
25:        00000000
26:        00000000
27:        00000000
28:        00000000
29:        00000000
2a:        805429de nt!KiGetTickCount
2b:        80542ae0 nt!KiCallbackReturn
2c:        80542c90 nt!KiSetLowWaitHighThread
2d:        8054361c nt!KiDebugService
2e:        80542461 nt!KiSystemService
2f:        805457f0 nt!KiTrap0F
30:        80541b20 nt!KiUnexpectedInterrupt0
31:        80541b2a nt!KiUnexpectedInterrupt1
32:        80541b34 nt!KiUnexpectedInterrupt2
33:        80541b3e nt!KiUnexpectedInterrupt3
34:        80541b48 nt!KiUnexpectedInterrupt4
35:        80541b52 nt!KiUnexpectedInterrupt5
36:        80541b5c nt!KiUnexpectedInterrupt6
37:        806e6864 hal!PicSpuriousService37
38:        80541b70 nt!KiUnexpectedInterrupt8
39:        80541b7a nt!KiUnexpectedInterrupt9
3a:        80541b84 nt!KiUnexpectedInterrupt10
3b:        80541b8e nt!KiUnexpectedInterrupt11
3c:        80541b98 nt!KiUnexpectedInterrupt12
3d:        806e7e2c hal!HalpApcInterrupt
3e:        80541bac nt!KiUnexpectedInterrupt14
3f:        80541bb6 nt!KiUnexpectedInterrupt15
40:        80541bc0 nt!KiUnexpectedInterrupt16
41:        806e7c88 hal!HalpDispatchInterrupt
42:        80541bd4 nt!KiUnexpectedInterrupt18
43:        80541bde nt!KiUnexpectedInterrupt19
44:        80541be8 nt!KiUnexpectedInterrupt20
45:        80541bf2 nt!KiUnexpectedInterrupt21
46:        80541bfc nt!KiUnexpectedInterrupt22
47:        80541c06 nt!KiUnexpectedInterrupt23
48:        80541c10 nt!KiUnexpectedInterrupt24
49:        80541c1a nt!KiUnexpectedInterrupt25
4a:        80541c24 nt!KiUnexpectedInterrupt26
4b:        80541c2e nt!KiUnexpectedInterrupt27
4c:        80541c38 nt!KiUnexpectedInterrupt28
4d:        80541c42 nt!KiUnexpectedInterrupt29
4e:        80541c4c nt!KiUnexpectedInterrupt30
4f:        80541c56 nt!KiUnexpectedInterrupt31
50:        806e693c hal!HalpApicRebootService
51:        80541c6a nt!KiUnexpectedInterrupt33
52:        80541c74 nt!KiUnexpectedInterrupt34
53:        80541c7e nt!KiUnexpectedInterrupt35
54:        80541c88 nt!KiUnexpectedInterrupt36
55:        80541c92 nt!KiUnexpectedInterrupt37
56:        80541c9c nt!KiUnexpectedInterrupt38
57:        80541ca6 nt!KiUnexpectedInterrupt39
58:        80541cb0 nt!KiUnexpectedInterrupt40
59:        80541cba nt!KiUnexpectedInterrupt41
5a:        80541cc4 nt!KiUnexpectedInterrupt42
5b:        80541cce nt!KiUnexpectedInterrupt43
5c:        80541cd8 nt!KiUnexpectedInterrupt44
5d:        80541ce2 nt!KiUnexpectedInterrupt45
5e:        80541cec nt!KiUnexpectedInterrupt46
5f:        80541cf6 nt!KiUnexpectedInterrupt47
60:        80541d00 nt!KiUnexpectedInterrupt48
61:        80541d0a nt!KiUnexpectedInterrupt49
62:        89dd4044 atapi!IdePortInterrupt (KINTERRUPT 89dd4008)
63:        89d75044 ohci1394!OhciIsr (KINTERRUPT 89d75008)
                 atapi!IdePortInterrupt (KINTERRUPT 89dda6f8)
                 atapi!IdePortInterrupt (KINTERRUPT 89dd9008)
64:        80541d28 nt!KiUnexpectedInterrupt52
65:        80541d32 nt!KiUnexpectedInterrupt53
66:        80541d3c nt!KiUnexpectedInterrupt54
67:        80541d46 nt!KiUnexpectedInterrupt55
68:        80541d50 nt!KiUnexpectedInterrupt56
69:        80541d5a nt!KiUnexpectedInterrupt57
6a:        80541d64 nt!KiUnexpectedInterrupt58
6b:        80541d6e nt!KiUnexpectedInterrupt59
6c:        80541d78 nt!KiUnexpectedInterrupt60
6d:        80541d82 nt!KiUnexpectedInterrupt61
6e:        80541d8c nt!KiUnexpectedInterrupt62
6f:        80541d96 nt!KiUnexpectedInterrupt63
70:        80541da0 nt!KiUnexpectedInterrupt64
71:        80541daa nt!KiUnexpectedInterrupt65
72:        80541db4 nt!KiUnexpectedInterrupt66
73:        89d74044 SCSIPORT!ScsiPortInterrupt (KINTERRUPT 89d74008)
                 USBPORT!USBPORT_InterruptService (KINTERRUPT 896c5008)
                 USBPORT!USBPORT_InterruptService (KINTERRUPT 89b5b008)
                 HDAudBus!AzController::Isr (KINTERRUPT 89612008)
74:        80541dc8 nt!KiUnexpectedInterrupt68
75:        80541dd2 nt!KiUnexpectedInterrupt69
76:        80541ddc nt!KiUnexpectedInterrupt70
77:        80541de6 nt!KiUnexpectedInterrupt71
78:        80541df0 nt!KiUnexpectedInterrupt72
79:        80541dfa nt!KiUnexpectedInterrupt73
7a:        80541e04 nt!KiUnexpectedInterrupt74
7b:        80541e0e nt!KiUnexpectedInterrupt75
7c:        80541e18 nt!KiUnexpectedInterrupt76
7d:        80541e22 nt!KiUnexpectedInterrupt77
7e:        80541e2c nt!KiUnexpectedInterrupt78
7f:        80541e36 nt!KiUnexpectedInterrupt79
80:        80541e40 nt!KiUnexpectedInterrupt80
81:        80541e4a nt!KiUnexpectedInterrupt81
82:        89dd5044 atapi!IdePortInterrupt (KINTERRUPT 89dd5008)
83:        89b79044 VIDEOPRT!pVideoPortInterrupt (KINTERRUPT 89b79008)
                 NDIS!ndisMIsr (KINTERRUPT 896ca008)
                 USBPORT!USBPORT_InterruptService (KINTERRUPT 89b83008)
                 USBPORT!USBPORT_InterruptService (KINTERRUPT 8966e008)
                 USBPORT!USBPORT_InterruptService (KINTERRUPT 8922e008)
84:        80541e68 nt!KiUnexpectedInterrupt84
85:        80541e72 nt!KiUnexpectedInterrupt85
86:        80541e7c nt!KiUnexpectedInterrupt86
87:        80541e86 nt!KiUnexpectedInterrupt87
88:        80541e90 nt!KiUnexpectedInterrupt88
89:        80541e9a nt!KiUnexpectedInterrupt89
8a:        80541ea4 nt!KiUnexpectedInterrupt90
8b:        80541eae nt!KiUnexpectedInterrupt91
8c:        80541eb8 nt!KiUnexpectedInterrupt92
8d:        80541ec2 nt!KiUnexpectedInterrupt93
8e:        80541ecc nt!KiUnexpectedInterrupt94
8f:        80541ed6 nt!KiUnexpectedInterrupt95
90:        80541ee0 nt!KiUnexpectedInterrupt96
91:        80541eea nt!KiUnexpectedInterrupt97
92:        89223044 serial!SerialCIsrSw (KINTERRUPT 89223008)
93:        89c5f044 i8042prt!I8042KeyboardInterruptService (KINTERRUPT 89c5f008)
94:        80541f08 nt!KiUnexpectedInterrupt100
95:        80541f12 nt!KiUnexpectedInterrupt101
96:        80541f1c nt!KiUnexpectedInterrupt102
97:        80541f26 nt!KiUnexpectedInterrupt103
98:        80541f30 nt!KiUnexpectedInterrupt104
99:        80541f3a nt!KiUnexpectedInterrupt105
9a:        80541f44 nt!KiUnexpectedInterrupt106
9b:        80541f4e nt!KiUnexpectedInterrupt107
9c:        80541f58 nt!KiUnexpectedInterrupt108
9d:        80541f62 nt!KiUnexpectedInterrupt109
9e:        80541f6c nt!KiUnexpectedInterrupt110
9f:        80541f76 nt!KiUnexpectedInterrupt111
a0:        80541f80 nt!KiUnexpectedInterrupt112
a1:        80541f8a nt!KiUnexpectedInterrupt113
a2:        80541f94 nt!KiUnexpectedInterrupt114
a3:        80541f9e nt!KiUnexpectedInterrupt115
a4:        89663044 USBPORT!USBPORT_InterruptService (KINTERRUPT 89663008)
a5:        80541fb2 nt!KiUnexpectedInterrupt117
a6:        80541fbc nt!KiUnexpectedInterrupt118
a7:        80541fc6 nt!KiUnexpectedInterrupt119
a8:        80541fd0 nt!KiUnexpectedInterrupt120
a9:        80541fda nt!KiUnexpectedInterrupt121
aa:        80541fe4 nt!KiUnexpectedInterrupt122
ab:        80541fee nt!KiUnexpectedInterrupt123
ac:        80541ff8 nt!KiUnexpectedInterrupt124
ad:        80542002 nt!KiUnexpectedInterrupt125
ae:        8054200c nt!KiUnexpectedInterrupt126
af:        80542016 nt!KiUnexpectedInterrupt127
b0:        80542020 nt!KiUnexpectedInterrupt128
b1:        89ded4bc ACPI!ACPIInterruptServiceRoutine (KINTERRUPT 89ded480)
b2:        80542034 nt!KiUnexpectedInterrupt130
b3:        8054203e nt!KiUnexpectedInterrupt131
b4:        89b81044 USBPORT!USBPORT_InterruptService (KINTERRUPT 89b81008)
b5:        80542052 nt!KiUnexpectedInterrupt133
b6:        8054205c nt!KiUnexpectedInterrupt134
b7:        80542066 nt!KiUnexpectedInterrupt135
b8:        80542070 nt!KiUnexpectedInterrupt136
b9:        8054207a nt!KiUnexpectedInterrupt137
ba:        80542084 nt!KiUnexpectedInterrupt138
bb:        8054208e nt!KiUnexpectedInterrupt139
bc:        80542098 nt!KiUnexpectedInterrupt140
bd:        805420a2 nt!KiUnexpectedInterrupt141
be:        805420ac nt!KiUnexpectedInterrupt142
bf:        805420b6 nt!KiUnexpectedInterrupt143
c0:        805420c0 nt!KiUnexpectedInterrupt144
c1:        806e6ac0 hal!HalpBroadcastCallService
c2:        805420d4 nt!KiUnexpectedInterrupt146
c3:        805420de nt!KiUnexpectedInterrupt147
c4:        805420e8 nt!KiUnexpectedInterrupt148
c5:        805420f2 nt!KiUnexpectedInterrupt149
c6:        805420fc nt!KiUnexpectedInterrupt150
c7:        80542106 nt!KiUnexpectedInterrupt151
c8:        80542110 nt!KiUnexpectedInterrupt152
c9:        8054211a nt!KiUnexpectedInterrupt153
ca:        80542124 nt!KiUnexpectedInterrupt154
cb:        8054212e nt!KiUnexpectedInterrupt155
cc:        80542138 nt!KiUnexpectedInterrupt156
cd:        80542142 nt!KiUnexpectedInterrupt157
ce:        8054214c nt!KiUnexpectedInterrupt158
cf:        80542156 nt!KiUnexpectedInterrupt159
d0:        80542160 nt!KiUnexpectedInterrupt160
d1:        806e5e54 hal!HalpClockInterrupt
d2:        80542174 nt!KiUnexpectedInterrupt162
d3:        8054217e nt!KiUnexpectedInterrupt163
d4:        80542188 nt!KiUnexpectedInterrupt164
d5:        80542192 nt!KiUnexpectedInterrupt165
d6:        8054219c nt!KiUnexpectedInterrupt166
d7:        805421a6 nt!KiUnexpectedInterrupt167
d8:        805421b0 nt!KiUnexpectedInterrupt168
d9:        805421ba nt!KiUnexpectedInterrupt169
da:        805421c4 nt!KiUnexpectedInterrupt170
db:        805421ce nt!KiUnexpectedInterrupt171
dc:        805421d8 nt!KiUnexpectedInterrupt172
dd:        805421e2 nt!KiUnexpectedInterrupt173
de:        805421ec nt!KiUnexpectedInterrupt174
df:        805421f6 nt!KiUnexpectedInterrupt175
e0:        80542200 nt!KiUnexpectedInterrupt176
e1:        806e7048 hal!HalpIpiHandler
e2:        80542214 nt!KiUnexpectedInterrupt178
e3:        806e6dac hal!HalpLocalApicErrorService
e4:        80542228 nt!KiUnexpectedInterrupt180
e5:        80542232 nt!KiUnexpectedInterrupt181
e6:        8054223c nt!KiUnexpectedInterrupt182
e7:        80542246 nt!KiUnexpectedInterrupt183
e8:        80542250 nt!KiUnexpectedInterrupt184
e9:        8054225a nt!KiUnexpectedInterrupt185
ea:        80542264 nt!KiUnexpectedInterrupt186
eb:        8054226e nt!KiUnexpectedInterrupt187
ec:        80542278 nt!KiUnexpectedInterrupt188
ed:        80542282 nt!KiUnexpectedInterrupt189
ee:        80542289 nt!KiUnexpectedInterrupt190
ef:        80542290 nt!KiUnexpectedInterrupt191
f0:        80542297 nt!KiUnexpectedInterrupt192
f1:        8054229e nt!KiUnexpectedInterrupt193
f2:        805422a5 nt!KiUnexpectedInterrupt194
f3:        805422ac nt!KiUnexpectedInterrupt195
f4:        805422b3 nt!KiUnexpectedInterrupt196
f5:        805422ba nt!KiUnexpectedInterrupt197
f6:        805422c1 nt!KiUnexpectedInterrupt198
f7:        805422c8 nt!KiUnexpectedInterrupt199
f8:        805422cf nt!KiUnexpectedInterrupt200
f9:        805422d6 nt!KiUnexpectedInterrupt201
fa:        805422dd nt!KiUnexpectedInterrupt202
fb:        805422e4 nt!KiUnexpectedInterrupt203
fc:        805422eb nt!KiUnexpectedInterrupt204
fd:        806e75a8 hal!HalpProfileInterrupt
fe:        806e7748 hal!HalpPerfInterrupt
ff:        80542300 nt!KiUnexpectedInterrupt207
2010-4-16 18:53
0
雪    币: 75
活跃值: (693)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
处理例程是nt!KiUnexpectedInterrupt195也是空闲的,可用
2010-4-16 19:10
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
小弟略看过intel的文档 你这个做法兼容性不是很高
2010-4-16 23:26
0
游客
登录 | 注册 方可回帖
返回
//