进程,顾名思义,是一个进行中的程序,即操作系统正在运行的程序的实例。它由两部分组成:

  1.进程的一部分是操作系统管理进程的内核对象。系统使用内核对象来存放进程的信息

  2.进程的另一部分是进程的地址空间,它包含进程运行所需要的代码和数据

  我们可以使用CreateProcess函数来创建一个进程,因为进程由两部分组成,所以系统在调用CreatProcess函数的时候,会创建一个进程内核对象,并将进程内核对象的是使用计数设置为1,然后系统为新进程创建一个虚拟的地址空间,并将进程运行需要的可执行文件和DLL文件的代码和数据加载到这个进程的地址空间中。

  进程就像一个容器,它自生是无法运行的,必须依靠一个在进程环境中的线程来负责执行进程中的代码。因此,进程创建的过程中,系统会为新进程创建一个主线程,然后通过执行C/C++运行库的启动代码就可以引发主线程的执行,主线程接着就会调用(w)WinMain和(w)main函数。