windows系统的对象管理

windows中的对象和高级编程语言中所说的对象还欧区别,准确来讲,windows中的对象其实指的是一种数据结构并且是一种带着“对象头(object head)” 的数据结构!

所以windows中的对象可以基本分为三个部分:对象头、基本对象结构、可选部分!

对象数据结构 可以如图所示

objectheader结构定义

 1 lkd> dt _object_header
 2 nt!_OBJECT_HEADER
 3 +0x000 PointerCount : Int4B
 4 +0x004 HandleCount : Int4B
 5 +0x004 NextToFree : Ptr32 Void
 6 +0x008 Lock : _EX_PUSH_LOCK
 7 +0x00c TypeIndex : UChar
 8 +0x00d TraceFlags : UChar
 9 +0x00e InfoMask : UChar
10 +0x00f Flags : UChar
11 +0x010 ObjectCreateInfo : Ptr32 _OBJECT_CREATE_INFORMATION
12 +0x010 QuotaBlockCharged : Ptr32 Void
13 +0x014 SecurityDescriptor : Ptr32 Void
14 +0x018 Body : _QUAD

而创建对象后就会返回句柄,相关进程可以通过句柄来使用此对象,所以对象可以有名和可以无名。

但是大部分情况,对象还是需要名字的,有名对象的组织就成了一个问题!

在windows中通过OBJECT_DIRECTORY目录对项来管理!

我们看下OBJECT_DIRECTORY结构:

1 lkd> dt _object_directory
2 nt!_OBJECT_DIRECTORY
3 +0x000 HashBuckets : [37] Ptr32 _OBJECT_DIRECTORY_ENTRY
4 +0x094 Lock : _EX_PUSH_LOCK
5 +0x098 DeviceMap : Ptr32 _DEVICE_MAP
6 +0x09c SessionId : Uint4B
7 +0x0a0 NamespaceEntry : Ptr32 Void
8 +0x0a4 Flags : Uint4B

对象目录是由多个节点连接而成的树状结构(不考虑符号连接),树的根是一个目录对象,且树中的每个节点都是对象。除根节点之外,所有的中间节点都必须是目录对象或者符号链接对象(OBJECT_SYMBOLIC_LINK对象),普通的对象只能成为叶节点

看OBJECT_DIRECTORY结构中的第一个元素,是一个OBJECT_DIRECTORY_ENTRY结构指针数组,灭个指针用来维系一个目录项结构的队列,注意,除根节点外,每一个对象都需要借助于目录项结构才能插入目录!

1 lkd> dt nt!_object_directory_entry
2 +0x000 ChainLink : Ptr32 _OBJECT_DIRECTORY_ENTRY
3 +0x004 Object : Ptr32 Void
4 +0x008 HashValue : Uint4B

第一个元素仍然指向一个object_directory_entry结构,Object是其连接的对象。

由上图可以看到目录项可以和具体的普通对象结合插入对象目录,也可以和目录节点对象结合又形成一个目录。

分析下上面的图:

根节点是一个目录对象,主体是一个HASH表,这里只表现了其中的两个队列,每一个队列上的目录项(对象)具有相同的HASH值,结合具体的文件便可以轻松理解!

时间: 2024-10-14 16:23:46

windows系统的对象管理的相关文章

【Windows】 Windows系统小积累

因为用Windows大多都是处理些个人事务,有很多东西搜过用过就忘了,不记住也可惜了还是记录一下 比较好 ■ win键+一个键的快捷打开方式 win键+q是搜索的快捷键,win键+r是运行的快捷键.而win键+x会跳出很多windows系统常用的管理工具.这样就不用在点开我的电脑或者开始菜单一个个去找了. 而win键+r得到的运行对话框可以很快的打开很多 程序,比如 cmd 打开命令提示符窗口 notepad 打开一个新记事本文件 mspaint 打开画图 winword 打开一个新word文件

windows内核对象管理学习笔记

目前正在阅读毛老师的<windows内核情景分析>一书对象管理章节,作此笔记. Win内核中是使用对象概念来描述管理内核中使用到的数据结构.此对象(Object)均是由对象头(Object Header)组成,实际上由于对象头概念的特殊结构,还有些可选成分.于是一个对象实际上是分为三部分. OBJECT_HEADER对象头. 数据本体(比如文件对象File Object.Event等) 附加信息(比如Object Header Name Info等) 结构如下: //摘录自 Reactos代码

ansible自动化管理windows系统实战

一.简述 1.说明日常系统自动化运维过程中难免会有windows系列服务器,就开源软件来说目前大多的对windows批量管理兼容性不太好;不像Linux系统便捷,但现实中确实有些业务需要跑在windows上;搜索查找折腾一番后,发现python开发的ansible(已经被redhat收购)有比较好的解决方案,通过一番折腾,整理出来,以备忘交流; 2.实验环境服务器端:CentOS7.4_x64 自带python 2.7.5 ip:172.16.3.167源码安装ansible 被管理window

【Absible学习】ansible管理windows系统

Ansible 从1.7+版本开始支持Windows,实测Windows 7 SP1和Windows Server 2008 R2及以上版本系统经简单配置可正常与Ansible通信.但需要满足以下几点:1.管理机必须是linux系统,且原装Python Winrm模块2.底层通信基于PowerShell,版本为3.0+,Management Framework版本为3.0+3.远程windows主机开启Winrm服务 被控制主机windows 安装Framework 3.0+下载链接为:http

WINDOWS系统Eclipse+NDK+Android + OpenCv

WINDOWS系统Eclipse+NDK+Android + OpenCv 参考文档博客 1 NDK环境搭建 http://jingyan.baidu.com/article/5d6edee22d908799eadeec9f.html 2 官方文档 Android.mk与Application.mk如何编写,OpenCV库如何调用 http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_

windows系统自带工具

辅助功能向导:单击"开始→运行",在弹出的对话框中输入:accwiz 计算器:单击"开始→运行",在弹出的对话框中输入:calc 字符影射表:单击"开始→运行",在弹出的对话框中输入:charmap 磁盘清理:单击"开始→运行",在弹出的对话框中输入:cleanmgr SQL Server 客户端网络实用工具:单击"开始→运行",在弹出的对话框中输入:cliconfg 剪贴薄查看器:单击"开始→运

Windows 系统错误代码

0-操作成功完成. 1-函数不正确. 2-系统找不到指定的文件. 3-系统找不到指定的路径. 4-系统无法打开文件. 5-拒绝访问. 6-句柄无效. 7-存储控制块被损坏. 8-存储空间不足,无法处理此命令. 9-存储控制块地址无效. 10-环境不正确. 11-试图加载格式不正确的程序. 12-访问码无效. 13-数据无效. 14-存储空间不足,无法完成此操作. 15-系统找不到指定的驱动器. 16-无法删除目录. 17-系统无法将文件移到不同的磁盘驱动器. 18-没有更多文件. 19-介质受写

摘:Windows系统内存计数器理解解析_备忘录_51Testing软件测试网...

[原创]Windows系统内存计数器理解解析 2008-05-13 11:42:23 / 个人分类:性能测试 说明:本文的计数器以Windows2003为准. 序言;F9n)\%V1a6Z C)?ZV0内存的使用情况是系统性能中重要的因素之一,频繁的页交换及内存泄露都会影响到系统的性能.本文主要是描述内存的一些概念.计数器含义,以及可能存在的性能瓶颈.4Cd%l3r(T&z y051Testing软件测试网xi[8VP?r?Q?a一些概念f2c(qDw-y&{l01Vu7t|%D} r5e

Windows系统上安装zabbix_agent

Zabbix概述 Zabbix是一个高度集成的企业级开源网络监控解决方案,与Cacti.Nagios类似,提供分布式监控以及集中的Web管理界面.被监控对象只要支持SNMP协议或者运行Zabbix_agents代理程序即可. Zabbix具备常见商业监控软件所具备的功能:主机性能监控.网络设备性能监控.数据库性能监控.ftp等等通用协议的监控,能够利用灵活的可定制警告机制,允许用户对事件发送基于E-mail的警告,可以保证相关维护人员对问题作出快速响应,还可以利用存储数据提供杰出的报表及实时的图