标签:
kd> dt_handle_Table e1931a40
nt!_HANDLE_TABLE
   +0x000 TableCode        : 0xe2016000
   +0x004 QuotaProcess     : 0x86335020 _EPROCESS
   +0x008 UniqueProcessId  : 0x00000700 Void
   +0x00c HandleTableLock  : [4] _EX_PUSH_LOCK
   +0x01c HandleTableList  : _LIST_ENTRY [ 0xe1f3e2b4 - 0xe1f5290c ]
   +0x024 HandleContentionEvent : _EX_PUSH_LOCK
   +0x028 DebugInfo        : (null) 
   +0x02c ExtraInfoPages   : 0n0
   +0x030 FirstFree        : 0x19c
   +0x034 LastFree         : 0
   +0x038 NextHandleNeedingPool : 0x800
   +0x03c HandleCount      : 0n114
   +0x040 Flags            : 0
   +0x040 StrictFIFO       : 0y0
+0x038 NextHandleNeedingPool : 0x800
这个是上限当CID大于这个就去另一个表里找
一个句柄表的大小是一个页4k 4096 一个HANDLE_TABLE_ENTRY8个字节 所以一个表能存4096/8=512个表项,句柄以4递增,所以512*4=2048,最大索引时2048也就是0x800
+0x000 TableCode : 0xe2016000
这个后面是0就是一级表,
如果非零就掩去后两位0xe2016001&0xfffffffC;得到的地址里存的是两个一级表
标签:
原文地址:http://www.cnblogs.com/Browneyes/p/4602795.html