Windows Programming系列 进程

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值