zoukankan      html  css  js  c++  java
  • Win7 _Object_header 中的 TypeIndex

    Win7 比较 xp下ObjectHeader中的内容有所变化,xp直接在OBJECT_HEADER里保存了POBJECT_TYPE指针,而Win7中把所有的对象类型放在了一个表里,这个表叫做ObTypeIndexTable。可以这么定义为:

    POBJECT_TYPE ObTypeIndexTable[0x100];

    Win7的对象头中不再保存ObjectType指针,而是保存了TypeIndex,也就是对象类型在该表中的索引,并且提供了一个函数ObGetObjectType。需要取得对象类型时直接使用导出函数ObGetObjectType就可以得到对应的对象类型了,反而比以前方便。
    该函数非常简单,还原成代码如下:

    POBJECT_TYPE 
    ObGetObjectType(
        IN PVOID Object)
    {
        POBJECT_HEADER ObjectHeader=OBJECT_TO_OBJECT_HEADER(Object);
        return ObTypeIndexTable[ObjectHeader->TypeIndex];
    }

    代码很简单,传入一个对象,取对象头中的TypeIndex作为索引,然后返回ObTypeIndexTable中对应的值。
    一个简单的获取所有对象类型指针的方法就是:从ObGetObjectType中取ObTypeIndexTable遍历即可

    kd> dd ObTypeIndexTable
    83f7c900  00000000 bad0b0b0 86344768 863446a0
    83f7c910  863445d8 863e2040 863e2f00 863e2e38
    83f7c920  863e2d70 863e2ca8 863e2be0 863e2528
    83f7c930  863fe418  863fe350 86405040 86405208
    83f7c940  86405140 864092f8 86409230 86409168
    83f7c950  863ffc90   863ffbc8 863ffb00 863ffa38
    83f7c960  863ff970   863ff8a8 863ff7e0 863ff718
    83f7c970  863ff650   86406f78 86406eb0 86406de8
  • 相关阅读:
    java实现万年历
    java中关于Calendar
    java中各种类型的输入输出
    java(向上向下转型)
    MyEclipse还原默认窗口
    Hibernate映射问题之OneToOne【自己整理】
    Neither BindingResult nor plain target object for bean
    剑宗与气宗
    分治算法
    spring处理线程并发
  • 原文地址:https://www.cnblogs.com/lanrenxinxin/p/4671083.html
Copyright © 2011-2022 走看看