您的位置:首页 > 其它

Windows Programming系列 进程

2006-11-13 14:31 120 查看
0、进程由两部分构成,进程内核对象和地址空间。

1、进入点函数

可以使用的进入点函数有WinMain, wWinMain, main, wmain,嵌入可执行文件的启动函数分别为WinMainCRTStartup, wWinMainCRTStartup, mainCRTStartup, wmainCRTStartup.

2、进程的实例句柄

HMODULE and HINSTANCE是完全相同的对象,之所以存在两个数据类型,是因为16位的Windows中,二者用于标识不同的东西。

GetModuleFileName, GetModuleHandle

3、每个进程都有一个与它相关的环境块,环境块是进程的地址空间中分配的一个内存块。 

4、CreateProcess函数详解。


VOID BaseProcessStart(PPROCESS_START_ROUTINE pfnStartAddr)




...{


   __try




   ...{


      ExitThread((pfnStartAddr)());


   }


   __except(UnhandledExceptionFilter(GetExceptionInformation()))




   ...{


      ExitProcess(GetExceptionCode());


   }


   //NOTE: We never get here.


}

5、进程在何种情况下终止运行:

主线程的进入点函数返回

进程中的一个线程调用ExitProcess函数

另一个进程中的线程调用TerminateProcess函数

6、进程终止运行时出现的情况:

进程中剩余的所有线程全部终止运行

进程指定的所有用户对象和GDI对象均被释放,所有内核对象均被关闭 (...)

进程的退出代码将从STILL_ACTIVE改为传递给ExistProcess or TerminateProcess的代码

进程内核对象的状态变成收到通知的状态

进程内核对象的使用计数递减1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows