WVC_01_内核对象

  内核对象是由内核分配的一个内存块,该内存块是一种数据结构,只能由内核访问和修改。内核对象可以被系统或应用程序用来管理各种各样的资源。

  应用程序中经常需要通过调用Win32 API函数来创建各种内核对象,如文件对象,文件映射对象,进程对象,线程对象等。

  内核对象是由内核所有,而不是由进程所有。

  除了内核对象,还有用户对象,如菜单,窗口,画刷,字体等。

  当调用一个用于创建内核对象的函数时,该函数就返回一个用于标识该对象的句柄。

进程的内核对象句柄表

  每个进程被初始化时,系统要为它分配一个句柄表。该句柄表只用于内核对象而不是用户对象。 句柄实际上是放入进程的句柄表中的索引

内核对象的安全描述符

  安全描述符用于描述谁创建了该对象,谁能够访问或使用该对象,谁无权访问该对象。

  安全描述符通常在编写服务器应用程序时使用,如果你编写客户端应用程序,那么可以忽略内核对象的安全描述符。

page 32

时间: 2024-08-13 21:29:19

WVC_01_内核对象的相关文章

线程与内核对象的同步

线程与内核对象的同步内核对象可以处于已通知或未通知状体进程,线程,作业,文件,控制台输入,文件修改,事件,可等待定时器 等待函数DWORD WaitForSingleObject(HANDLE hobject, DWORD dwMilliseconds); 同时查看若干个内核对象已通知状体DWORD WaitForMultipleObjects(DWORD dwCount,CONST HANDLE* phObjects,BOOL fWaitAll,DWORD dwMilliseconds);dw

第3章 内核对象(2)

3.3 跨进程边界共享内核对象 3.3.1 使用对象句柄继承 (1)对象句柄继承,只发生在进程之间有父子关系的时候(即一个进程而另一个进程CreateProcess起来) (2)内核对象句柄继承的实现 ①父进程必须先指出哪些内核对象句柄是可继承(注意不是内核对象本身的继承,而是内核对象的句柄继承),父进程在创建内核对象时要将SECURITY_ATTRIBUTES的bInheritHandle字段设为TRUE,表示可继承.这时句柄表中相应的记录项的标志位被设为1,否则为0. ②父进程调用Creat

第3章 内核对象(1)

3.1 何为内核对象 3.1.1 Windows平台上的3大对象 (1)分类 对象 描述 备注 GUI对象 也叫用户对象,一般是单线程访问,属于线程级的对象,如 加速键表(HACCEL).插入记号(Caret).光标(HCURSOR).桌面(HDESK). 钩子(HHOOK).图标(HICON).菜单(HMENU).窗口(HWND).窗口栈(HWINSTA) 句柄值是系统唯一的,即一个进程可以通过该句柄值对另一个进程中的对象进行操作,如发送消息. GDI对象 如DC.Pen.Font等,一般是单

白话windows内核对象共享之复制对象句柄

引子:话说老王的果园大丰收,老王心花怒放,带着全家去美国阿拉斯加度假.阿拉斯加有很多东西琳琅满目,都是中国没有的,老王及家人都过了一把购物瘾.但是有一次却遇到了比较尴尬的事.怎么回事呢?原来老王第一次出国,在买地摊上的东西时讨价还价100元,但是给人家的却是100元人民币,人家自然不干撒,你100元才多少美元呀,老王只好忍痛割爱给了600元人民币. 为什么会出现这样的尴尬呢?因为两个国家的货币换算不是一样的.中国的100元和美国的100元不是等价的,如何才能等价呢?必须根据当前汇率来换算.今天要

Windows内核之内核对象

1内核对象定义: 1.1:每个内 核对象只是内核分配的一个内存块,并且只能由该内核访问. 1.2:该内存块是一种数据结构,它的成员负责维护该对象的各种信息. 有些数据成员(如安全性描述符.使用计数等)在所有对象类型中是相同的,但大多数数据成员属于特定的对象类型.例如,进程对象有一个进程ID .一个基 本优先级和一个退出代码,而文件对象则拥有一个字节位移.一个共享模式和一个打开模式. 2内核对象种类: 比如存取符号对象. 事件对象.文件对象.文件映射对象.I / O 完成端口对象.作业对象.信箱对

016 事件内核对象4

示例 #define UNICODE #include <stdio.h> #include <tchar.h> #include <windows.h> #include <process.h> #define ___tmainCRTStartup int *gPNum; BOOL gUsing = FALSE; void Entry() { while(InterlockedExchange((long*)&gUsing,TRUE) == TRU

016 内核对象1

内核对象 ● 内核对象 ● 句柄的本质 ● 下载 WinObj ○ https://technet.microsoft.com/en-us/sysinternals/bb896657/ ● WinObj 主要是用来参看我们系统中的内核对象 ○ 必须用管理员权限启动程序 ○ 内核对象是属于我的系统的内核对象 ○ 进程仅仅拥有内核对象的使用权 ○ 并且是受限制的 ● RO 跟 R3的关系 ○ R3下的操作都需要通过R0层进行操作 ○ R3下就好像是 R0的一个虚拟镜像,实际操作还是由R0层操作的 ●

内核对象

每个内核对象都只是一个内存块,它由操作系统内核分配,并只能由操作系统内核访问.这个内存块是一个数据结构,其成员维护着与对象相关的信息.少数成员(安全描述符和使用计数)是所有对象都有的,但其他大多数成员都是不同类型的对象特有的 由于内核对象的数据结构只能由操作系统内核访问,所以应用程序不能在内存中定位这些数据结构并直接更改其内容.正因为有这个限制,所以微软能自由地添加.删除或修改这些数据结构中的成员,同时不会干扰任何应用程序的正常运行 为了增强系统的可靠性,内核对象的句柄是与进程相关的.如果进程A

windows内核对象管理学习笔记

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