博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三章 内核对象
阅读量:5313 次
发布时间:2019-06-14

本文共 894 字,大约阅读时间需要 2 分钟。

(1) 何为内核对象:每个内核对象都只是一个内存块,它由操作系统内核分配,并且只能由操作系统内核访问.内存块是数据结构,成员维护着与对象相关的信息.内核对象的生命周期是可能大于创建它的进程,基数机制,如果有进程使用它计数器+1,使用它的进程终止计数器减1,计数器归0,操作系统自动销毁它(类似于com).

 

(2)内核对象的安全性,创建对象的时候有下面这个结构的指针

  typedefine _SECURITY_ATTRIBUTES

  {

    DWORD nLength;

    LPVOID  lpSecurityDescriptor;

    BOOL bInheritHandler;

  }SECURITY_ATTRIBUTES;几乎所有的内核对象创建时候都需要指定SECURITY_ATTRIBUTES。

 (3)进程内核对象句柄表,数据结构的数组,每个数据结构包含内核对象的指针,访问掩码,和一些标志

 (4)确定哪些内核对象未关闭 Process Explorer==>handlers窗格==>选择列==>选中所有标题

  view==>update speed==>pause      F5

 (5)创建内核对象:好像没啥特别说明的

 (6)关闭内核对象:BOOL CloseHandle(HANDLE object);

  (7)跨进程边界共享内核对象

  • 对象句柄继承,父进程创建子进程指出这个对象的句柄是可以继承的,父进程创建子进程会拷贝所有属性为可继承的句柄表。内核对象句柄可以使用Set/GetHandlerInformation设置/获取句柄的继承属性和是否允许关闭句柄
  • 为对象命名 Open*函数不会创建对象,Create*会创建对象,注意所有的内核对象都共享一个命名空间,类型不同也只允许一个叫“what”的内核对象存在。
  • 复制对象句柄DuplicateHandler函数,获一个内存句柄的记录项,然后再另一个进程中创建它的副本。

转载于:https://www.cnblogs.com/WillingCPP/archive/2013/04/03/2996997.html

你可能感兴趣的文章
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
查看>>
jenkins搭建
查看>>
C#中使用Split分隔字符串的技巧
查看>>
eclipse的调试方法的简单介绍
查看>>
加固linux
查看>>
IPSP问题
查看>>
10.17动手动脑
查看>>
WPF中Image显示本地图片
查看>>
Windows Phone 7你不知道的8件事
查看>>
实用拜占庭容错算法PBFT
查看>>
java的二叉树树一层层输出,Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历...
查看>>
php仿阿里巴巴,php实现的仿阿里巴巴实现同类产品翻页
查看>>
Node 中异常收集与监控
查看>>
Excel-基本操作
查看>>
面对问题,如何去分析?(分析套路)
查看>>
Excel-逻辑函数
查看>>