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
时间: 2024-11-09 00:30:58

Win7 _Object_header 中的 TypeIndex的相关文章

Ubuntu安装教程--Win7系统中含100M保留分区

1.检查 Win7 保留分区 1)进入 Win7 打开库文件夹,在左侧栏找到"计算机",瞄准点右键选择"管理"菜单: 2)在出来的管理面板左边找到"磁盘管理",点击它,在右边出来各个分区: 注意:如果里面有一个100M的系统保留分区,则进行下面(3-6)的操作,否则请跳至第2步复制启动文件: 3)瞄准100M"系统保留"分区点右键,选择"更改驱动器号和路径"菜单: 4)在出来的面板中,点左下角的"

删除Win7 msconfig中Startup内多余的启动项

删除Win7 msconfig中Startup内多余的启动项 我个人推崇Windows极简主义,主张一切用Windows程序自己去管理Windows.在设置开机启动项时(Win+R,输入msconfig,Enter即可),发现我以前删除的应用程序依然出现在列表中,如图所示. 可以看出这些程序的Manufacturer已经变为Unknown(我的系统是英文系统,如果是中文系统应该显示"未知"). 作为一名强迫症患者晚期,我当然不希望这些多余的应用程序出现在我的开机启动项列表中,就算是未勾

Win7系统中哪些服务可以关闭?

Win7系统中很多服务和进程其实大家在平时都用不上,这些服务和进程不仅占用了很大部分的资源,而且还会影响系统的运行速度和安全.我们可以关闭那些不常用的服务和进程来加快系统运行速度,但对于一般的用户来说可能不太清楚哪些是可关闭,哪些是不可关闭的,因此下面我们就来详解下Win7系统中可以关闭的服务. Win7系统查看服务的方法:点击开始--运行--输入services.msc--回车. 1.Application Management 该服务主要适用于大型企业环境下的集中管理,普通用户关了没什么影响

Win7系统中MySQL服务无法启动的解决方法

Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法.在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首先找到这个文件: Win7下的默认安装路径C:\ProgramData\MySQL\MySQL Server 5.6\my.ini打开此文件找到:default-storage-engine=INNODB将default-storage-engine的值改为:MYISAM.2.但是还有问题:因为以前你

修改win7电脑中所有文件的默认查看方式

怎么修改win7电脑中所有文件的默认查看方式 如何设置才可以得到如下的效果:比如说打开一个盘符或者一个文件夹,进行设置之后,这个盘符里或者这个文件夹下的所有子文件夹.所有子文件夹里的所有文件都以“详细信息”的方式展现.不要挨个打开文件夹里来修改. 1.首先对着空白处,鼠标右键单击,然后点击“排列方式” 选一个 还有 你还可以点击“查看” 选择图标大小.详细信息.平铺.列表 等 2.点击我的电脑左上角的 组织 按钮 随后选择“文件夹和搜索选项” ,再点击“查看”选项卡 ,然后点击“应用到文件夹”这

在64位Win7操作系统中安装Microsoft Access Database Engine的解决方案

现在的Win7系统中安装的一般都是32位的Office,因为微软推荐使用32位的Office,兼容性更强,稳定性更好.在使用Access作为数据库的时候,C#操作Access,如果Access是accdb,那么一切会很顺利,Win7系统中有访问accdb的相应的组件,使用C#调用就可以.如果是mdb,以往在XP上是使用Jet方式访问,而在Win7上已经不推荐使用Jet, 因为Win7系统本身就不带Jet的组件.从而出现了一个替代品Microsoft Access Engine,通过ACE的方式访

win7系统中右键新建没有写字板

问题描述: win7系统中右键新建没有写字板 解决方案: 1. 按下Win+R后输入regedit打开注册表. (可以使用组合键ALT+ 键盘上的左键, 对展开的注册表项进行折叠方可查看) 2.定位到:HKEY_CLASS_ROOT\.rtf 3. 右键新建能查看到word, word后缀名是.doc. 定位到.doc进行查看,分析.rtf与.doc二者的区别 4. 从第3步可以发现.rtf与.doc缺少了一项ShellNew.  在修改.rtf前先右键导出.rtf 防止后续修改出现问题时可以恢

怎样在win7 IIS中部署网站?

IIS作为微软web服务器的平台,可以轻松的部署网站,让网站轻而易举的搭建成功,那么如何在IIS中部署一个网站呢,下面就跟小编一起学习一下吧. 第一步:发布IIS文件 1:发布你所要在IIS上部署的网站,在Microsoft Visual Studio中的web项目点击右键,选择发布. 2:选择文件系统,然后选择保存位置,就可以发布成部署到IIS的文件. 第二步:IIS安装(启用Windows7系统自带IIS) 1:从电脑桌面单击"开始(Start)"—单击"控制面板(Con

[Win7]IE中访问FTP网址不能在资源管理器中打开

问题症状:在计算机或者IE中访问FTP网址,不能在资源管理器中打开.始终只能用IE浏览.网上在IE-视图-在资源管理器中浏览FTP等方法无效. 操作系统:Win7 软件版本:IE 11 处理方法: 保存下面的文件为reg注册表文件并导入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ftp] @="URL:File Transfer Protocol" "AppUserModelID"=&quo