心心程序博客

眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行!

导航

windows核心编程第三章阅读 内核对象

1.每个内核对象都只是一个内存块,它由操作系统内核分配,并只能由操作系统内核访问。

这个内存块是一个数据结构,其成语维护着与对象相关的信息。

少数成员(安全描述符和使用计数等)是所有对象都有的,但其他大多数成员都是不同类型的对象特有的。

2.由于内核对象的数据结构只能由操作系统内核访问,所以应用程序不能再内存中定位这些数据结构并直接修改其内容。

由于应用程序不能更改内核对象,所以windows提供了一组函数来完成这些功能。

3内核对象的句柄值 是与进程相关的,一个进程的句柄 传到另一个进程里面 就会出错。

4

内核对象由内核所拥有,而不是由进程所拥有。换句话说,如果你的进程调用了一个创建内核对象的函数,然后你的进程终止运行,那么内核对象不一定被撤消。在大多数情况下,对象将被撤消,但是如果另一个进程正在使用你的进程创建的内核对象,那么该内核知道,在另一个进程停止使用该对象前不要撤消该对象,必须记住的是,内核对象的存在时间可以比创建该对象的进程长。使用计数是所有内核对象类型常用的数据成员之一。

5.内核对象的安全性

内核对象可以拥有一个安全描述符来保护。安全描述符描述了谁拥有对象(一般是创建者拥有);描述符指出哪个组或用户可以访问此对象.若想了解一个对象是用户对象/GDI还是内核对象 一般通过创建函数,如果创建函数的参数有,指向安全的(PSECURITY_ATTRIBUTES),一般为内核对象

6在创建进程的时候,系统将分配个句柄表。这个句柄表内核对象使用

posted on 2012-05-17 15:33  心心程序博客  阅读(334)  评论(0编辑  收藏  举报