|
|
|
|
|
|
|
Windows内核调试
帖子发起人: zyq8709 发起时间: 2011-06-22 16:11 下午 回复: 1
|
帖子排序:
|
|
|
|
2011-06-22, 16:11 下午
|
zyq8709
注册: 2011-04-19
发 贴: 74
|
Irql值在内核中存储的位置?
|
|
|
|
我一直以为当前Irql值在KPRCB结构的Irql域中存储的,而ReactOs中也是这样处理的。但是我在调winXP
sp2代码时发现,xp并非在此处存储。而XP的KfRaiseIrql中几行关键代码是这样的:
806d1279 b6d1 mov dh,0D1h
806d127b 0fb68a58126d80 movzx ecx,byte ptr hal!HalpIRQLtoTPR (806d1258)[edx]
806d1282 a18000feff mov eax,dword ptr ds:[FFFE0080h]
806d1287 890d8000feff mov dword ptr ds:[0FFFE0080h],ecx ds:0023:fffe0080=00000000
806d128d c1e804 shr eax,4
806d1290 0fb68088c06d80 movzx eax,byte ptr hal!HalpVectorToIRQL (806dc088)[eax]
其中也并没有涉及到KPRCB,而是用到了ds:[FFFE0080h],为何XP不用KPCR,而ReactOS用了,这有什么本质影响吗?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-06-23, 12:02 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
代码中的地址(0FFFE0080h)是APIC的寄存器,映射到这个位置...
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » Re: Irql值在内核中存储的位置?
|
|
|
|
|
|