第三章 内核对象

来源:互联网 发布:电脑 防护 软件 编辑:程序博客网 时间:2024/04/30 20:02

 一、凡是用于创建内核对象的函数,在检查它们的返回值时,务必相当仔细。比如:

HANDLE hMutex=CreateMutex(...);
 if(hMutex==INVALID_HANDLE_VALUE)
 {
         //这里的代码不会被执行,因为CreateMutex失败的时候返回NULL
 }

 HANDLE hFile=CreateFile(..);
 if(hFile==NULL)
 {
        //这里的代码不会被执行,因为CreateFile失败的时候返回INVALID_HANDLE_VALUE(-1)
 }

 

 二、无论以什么方式创建内核对象,我们都要调用CloseHandle向系统表明我们已经结束使用对象。

BOOL CLoseHandle(HANDLE hobject)

如果句柄是有效的,系统就将获得内核对象的数据结构的地址,并将结构中的“使用计数”成员递减,如果技术变成0,内核对象被销毁,并从内存中去除。

三、进程中止时,系统会确保我们的进程不会留下任何东西,会为我们关闭对象。

原创粉丝点击