windows对象管理入门理解

本文介绍了Windows对象管理的基础,包括Dispatcher对象和I/O系统数据结构。Dispatcher对象具有DISPATCHER_HEADER,可被等待。I/O对象以ID标识,有的包含OBJECT_CREATOR_INFO结构。OBJECT_HANDLE_DB结构管理句柄,而OBJECT_TYPE初始化对象头。文章还讨论了对象类型的创建和内存开销。
摘要由CSDN通过智能技术生成

先来一张图。下面文字参考《 Undocumented Windows 2000 Secrets》

 

 

1.  Dispatcher 对象 此类对象位于系统的最底层,在它们的对象体的开始处都有一个共享 

的公共数据结构 ----DISPATCHER_HEADER (参见列表 7-1 )。在它们的对象头中包含一个对象类型 ID 和对象体的长度(保存在 32 位的 DWORD 变量中)。所有 Dispatcher 对象结构体的名字都以字母 K 开始,这表示它们是内核( Kernel )对象。 DISPATCHER_HEADER 结构的存在使得对象是 可等待的( waitable 。这意味着,此种类型的对象可以被传递给同步函数 KeWaitForSingleObject() KeWaitForMultipleObjects() Win32 函数 WaitForSingleObject() WaitForMultipleObjects() 就构建于它们之上。 

2.  I/O 系统数据结构( I/O 对象) 这类对象是最高层的对象,其对象体的开始位置是一个 SHORT 类型的成员,该成员用来标识该对象的 ID 。通常,此 ID 之后还有一个 SHORT WORD 类型的成员用来记录对象体的大小。不过,此类对象并不都遵守这一规则。 

3.  其他对象 不属于上述两种对象的对象。 

从现在起就要注意 Dispatcher 对象和 I/O 对象的类型 ID ,因为这些 ID 都是单独维护的,所以有些 ID 可能会发生重复。表 7-1 给出了我所知道的 Dispatcher 对象的类型。

7-1.  Dispatcher 对象汇总  ID 

类 型 

C 结构 

定 义 

DISP_TYPE_NOTIFICATION_EVENT 

KEVENT 

ntddk.h 

DISP_TYPE_SYNCHRONIZATION_EVENT

KEVENT 

ntddk.h 

DISP_TYPE_MUTANT 

KMUTANT,KMUTEX 

ntddk.h 

DISP_TYPE_PROCESS 

KPROCESS 

w2k_def.h 

DISP_TYPE_QUEUE 

KQUEUE 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值