Windows Programming系列 进程
2006-11-13 14:31
120 查看
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
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
相关文章推荐
- 【python系列】Python启动外部程序,以及进程间交互
- linux进程控制-exec系列
- 足球与oracle系列(1):32路诸侯点兵,oracle32进程联盟 之A组巴西SMON进程的大局观
- 【脚本语言系列】关于Python进程线程管理系统模块,你需要知道的事
- linux 操作系统进程系列
- 多线程系列一 进程和线程基本概念
- Electron系列教程——第三篇:主进程和渲染进程
- Oracle Golden Gate 系列十三 -- 配置GG进程检查点(checkpoint) 说明
- linux进程控制-exec系列
- Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
- Oracle GoldenGate 系列:如何计算 Extract 或 Replicat 进程的吞吐量
- Linux2.6内核进程调度系列2.更新实时进程的时间片
- linux进程系列(5)进程链与进程扇
- 喜羊羊系列之进程与线程
- linux进程系列(1)进程创建fork、vfork
- linux进程系列(2)进程的继承
- linux进程系列(3)父子进程变量虚拟内存地址相同但变量值不同的问题
- Windows 8 动手实验系列教程 实验5:进程生命周期管理
- 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(三)linux下进程中的多用户
- windows sdk编程系列文章 ---- 利用APC实现向一个运行中的进程注入自己的代码