第四章 进程

(1)什么是进程?

  进程是程序的一个运行实例,它由两个部分组成

  • 一个内核对象
  • 一个地址空间,其中包括可执行文件和dll 的代码和数据,还包括动态内存分配,比如堆栈什么的

(2)进程实例句柄

  加载到进程空间的每一个可执行文件、dll都有一个独一无二的实例句柄HINSTANCE,也就是程序的基地址,使用的  函数是GetModuleHandle,GetModuleHandleEX

 (3)进程的的命令行由创建进程时传入,进程还包括一个与它关联的环境块,是一个键值的字符串数组.

 (4)CreateProcess函数

 (5)终止进程的四种方法

  •   主线程的入口点函数返回(这个是强烈推荐的方式)
  •       进程的一个线程调用ExitProcess函数(要避免这种方式)
  •   其他进程的一个进程调用TerminateProcess函数(要避免这种方式,异步)
  •   进程中的所有线程自然死亡(这个基本上不可能发生)

(6)进程终止时候它做什么?

  •   终止进程内遗留的任何线程
  •       释放所有用户对象和GDI对象,关闭所有内核对象 
  •       进程的推出代码从STILL_ACTIVE变为传给传给ExitProcess或者TerminateProcess函数的代码
  •       进程内核对象的状态变为已触发状态
  •       进程内核对象的计数器减1
原文地址:https://www.cnblogs.com/WillingCPP/p/2998834.html