内核对象由内核所拥有,而不是由进程所拥有。
如果你的进程调用了一个创建内核对象的函数,然后你的进程终止运行,那么内核对象不一定被撤消。因为此时内核对象可能被其它进程使用着。内核对象的存在时间可以比创建该对象的进程长。
每个内核对象包含一个使用计数(有点像COM的引用计数)。当一个对象刚刚创建时,它的使用计数被置为1 。然后,当另一个进程访问一个现有的内核对象时,使用计数就递增1 。当进程终止运行时,内核就自动确定该进程 仍然打开的所有内核对象的使用计数。如果内核对象的使用计数降为0 ,内核就撤消该对象。这样可以确保在没有进程引用该对象时系统中不保留任何内核对象。
本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/08/31/1813125.html