第四章 进程

(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/archive/2013/04/04/2998834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值