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内核

帖子发起人: Thomson   发起时间: 2010-11-27 12:45 下午   回复: 3

Print Search
帖子排序:    
   2010-11-27, 12:45 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
什么是system pte?
Reply Quote
和一般的pte有什么区别呢?
IP 地址: 已记录   报告
   2010-11-28, 22:52 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 什么是system pte?
Reply Quote
U/S位(bit 2)通常不同, 为0, 代表内核特权.
例如:
kd> k
ChildEBP RetAddr
f8779d38 8053d648 nt!NtReadFile
f8779d38 7c90e514 nt!KiFastCallEntry+0xf8
00bdfe64 7c90d9da ntdll!KiFastSystemCallRet
00bdfe68 7c80199d ntdll!NtReadFile+0xc
00bdfed0 0100c232 kernel32!ReadFile+0x10d
00bdfef0 0100cb82 vmsrvc!VPCBusPipeClientEndPoint::ReadFromEndPoint+0x1e
00bdff6c 0100c049 vmsrvc!VPCBusPipeClientDataPipeEndPoint::HandleEventReadDataPipe+0x384
00bdff84 0100f53f vmsrvc!VPCBusPipeThread::HandleEvent+0x2e
00bdff94 0100c186 vmsrvc!VPCTransportEvent::DispatchEvents+0x1a
00bdffac 0100f12c vmsrvc!VPCBusPipeThread::ThreadEntry+0x38
00bdffb4 7c80b729 vmsrvc!VPCBusEvent_ThreadProc+0xc
00bdffec 00000000 kernel32!BaseThreadStart+0x37
kd> !pte 00bdfe68
VA 00bdfe68
PDE at 00000000C0600028 PTE at 00000000C0005EF8
contains 000000000B99D067 contains 800000000BACC067
pfn b99d ---DA--UWEV pfn bacc ---DA--UW-V

kd> !pte f8779d38
VA f8779d38
PDE at 00000000C0603E18 PTE at 00000000C07C3BC8
contains 0000000001031163 contains 800000000BA52163
pfn 1031 -G-DA--KWEV pfn ba52 -G-DA--KW-V
内核代码的地址f8779d38,对应PTE的低12位为163, U/S位为0...
IP 地址: 已记录   报告
   2010-11-29, 16:00 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 什么是system pte?
Reply Quote
多谢张老师.

我原文没有描述清楚. 其实我是想问system pte区域的.

在把书看好几遍后终于有点印象了.

说的应该是系统地址空间的一段, 以pte的形式来管理(比如把这段空间对应的pte做成一个linked list), 就像是用vad来管理用户空间一样.
IP 地址: 已记录   报告
   2010-11-29, 22:31 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 什么是system pte?
Reply Quote
理解你说的,是有这样个区域的概念,是用MiSystemPteInfo这个全局变量来描述的:
kd> dd nt!MiSystemPteInfo l1
82f64820 00016200
kd> dt nt!_MI_SYSTEM_PTE_TYPE 82f64820
+0x000 Bitmap : _RTL_BITMAP
+0x008 Flags : 3
+0x00c Hint : 0xc863
+0x010 BasePte : 0xc0400000 _MMPTE
+0x014 FailureCount : 0x82f64848 -> 0
+0x018 Vm : 0x82f52540 _MMSUPPORT
+0x01c TotalSystemPtes : 2016
+0x020 TotalFreeSystemPtes : 1440
+0x024 CachedPteCount : 246
+0x028 PteFailures : 0
+0x02c SpinLock : 0
+0x02c GlobalMutex : (null)
简单理解,这个区域就是用来容纳系统页表的,每个页表其实也就是很多个System PTE,与上次说的是一致的
IP 地址: 已记录   报告
高端调试 » 内核探秘 » Windows内核 » 什么是system pte?

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