Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: zyq8709   发起时间: 2011-06-22 16:11 下午   回复: 1

Print Search
帖子排序:    
   2011-06-22, 16:11 下午
zyq8709 离线,最后访问时间: 2019/8/6 21:05:02 zyq8709

发帖数前10位
注册: 2011-04-19
发 贴: 74
Confused [*-)] Irql值在内核中存储的位置?
Reply Quote
我一直以为当前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 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: Irql值在内核中存储的位置?
Reply Quote
代码中的地址(0FFFE0080h)是APIC的寄存器,映射到这个位置...
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Irql值在内核中存储的位置?

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.