核心对象其实和所谓的GDI对象,如画笔、画刷或DC是差不多的,只不过它由KERNEL32.DLL管理,而非GDI32.DLL管理。两种对象之间有许多相似。两者之间一个最大的不同是,GDI对象有单一拥有者,不是进程就是线程;而核心对象可以有一个以上的拥有者,甚至可以跨进程。为了保持对每一位主人(拥有者)的追踪,核心对象保持了一个引用计数(reference count),以记录有多少handles对应到此对象。
Win32核心对象清单:
· 进程processes
· 线程threads
· 文件files
· 事件events
· 信号量semaphores
· 互斥器mutexes
· 管道pipes,分为named和anonymous两种