核心对象以HANDLE为使用时的参考依据;
句柄(HANDLE),其实是个指针,指向操作系统内存空间的某个东西,这东西是不允许你直接取得的,你的程序不能够直接取用它,为的是维护系统的安全性与完整性。
GDI对象和核心对象之间的一个主要不同
- GDI对象有单一拥有者,不是进程就是线程
- 核心对象可以有一个以上的拥有者,甚至可以跨进程。
为了保持对每一位主人的追踪,核心对象保持了一个引用计数(reference count),以记录有多少handles对应到此对象。对象中也记录了哪一个进程或线程是拥有者。当你调用CreateThread()或是其他会传回handle的函数,引用计数便累加1;当你调用CloseHandle()时,引用计数便减1。