3内核对象

1、何为内核对象:事件对象、管道对象、进程对象、文件对象、IO对象、互斥对象、线程对象等等

2、每个对象都有一个内存块(我理解为一个struct结构),这个内存块存储对象的具体信息(进程ID、优先级、文件对象包含字节偏移量、打开模式等),应用编程通过WINDOWS提供的函数获取这个对象的句柄值(Handle)来操作这个对象。

3、句柄值HANDLE是进程相关的。对于同一个内核对象,不同进程获取的句柄值是不相同的。

4、内核对象的所有者是操作系统内核。也就是说,进程创建一个内核对象,然后,进程注销,内核对象不一定注销。

5、每个内核对象维持一个使用计数(usage count),个人理解为这个使用计数存储在内存块中。每个进程调用内核对象一次,计数+1,不调用—1.当计数为0时候注销内核对象

6、每个进程初始化时,会创建一个句柄表(内核对象的地址、访问掩码、标志)。进程每创建一个内核对象,都会把内核对象相关信息存入句柄表。每个内核对象的句柄值 == 句柄表索引值 << 2;

 

你可能感兴趣的:(3内核对象)