0、进程由两部分构成,进程内核对象和地址空间。
1、进入点函数
可以使用的进入点函数有WinMain, wWinMain, main, wmain,嵌入可执行文件的启动函数分别为WinMainCRTStartup, wWinMainCRTStartup, mainCRTStartup, wmainCRTStartup.
2、进程的实例句柄
HMODULE and HINSTANCE是完全相同的对象,之所以存在两个数据类型,是因为16位的Windows中,二者用于标识不同的东西。
GetModuleFileName, GetModuleHandle
3、每个进程都有一个与它相关的环境块,环境块是进程的地址空间中分配的一个内存块。
4、CreateProcess函数详解。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
5、进程在何种情况下终止运行:
- 主线程的进入点函数返回
- 进程中的一个线程调用ExitProcess函数
- 另一个进程中的线程调用TerminateProcess函数
6、进程终止运行时出现的情况:
- 进程中剩余的所有线程全部终止运行
- 进程指定的所有用户对象和GDI对象均被释放,所有内核对象均被关闭 (...)
- 进程的退出代码将从STILL_ACTIVE改为传递给ExistProcess or TerminateProcess的代码
- 进程内核对象的状态变成收到通知的状态
- 进程内核对象的使用计数递减1