1 / 29
文档名称:

Windows进程编程.ppt

格式:ppt   大小:337KB   页数:29页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Windows进程编程.ppt

上传人:今晚不太方便 2017/11/21 文件大小:337 KB

下载得到文件列表

Windows进程编程.ppt

相关文档

文档介绍

文档介绍:第二章
Windows 进程编程
主要内容
进程的概念
进程控制
进程间通信
进程(Process) 概念;
进程创建 CreateProcess 函数的使用;
系统进程获取与终止方法;
使用管程实现进程通信。
进程概念
进程是正在运行的程序的实例。
每个运行项目都对应一个进程,每个进程至少包含一个线程,它从main()函数开始执行,直到执行return语句返回,主线程结束,该进程也被从内存中卸载。
进程由如下几个部分组成:
与程序相关联的可执行代码的映像;
内存空间(通常是虚拟内存中的一些区域),其中保存可执行代码、进程的特定数据、用于记录活动例程和其他事件的调用栈、用于保存实时产生的中间计算结果的堆(heap);
分配给进程的资源的操作系统描述符(比如文件句柄)以及其他数据资源;
安全属性: 进程的所有者和权限;
处理器的状态: 寄存器的内容、物理内存地址等。
“进程”(Process)和“线程”(Thread)是操作系统控制多任务的两个重要概念。
早期的Windows ,而Windows 9x以后实行的是抢占式多任务
-- 区别在于是程序协调(需简单地在各个应用程序之间来回切换)或系统管理多任务。
在Win 32(Windows 95/NT/XP)中,每一个进程可以同时执行多个线程,这意味着一个程序可以同时完成多个任务。
进程概念
进程的状态
一个进程生命周期中有如下一些状态:
系统在创建新进程时会为新进程指定一个STARTUPINFO类型的变量。
这个结构包含了父进程传递给子进程的一些显示信息。
对图形界面应用程序,这些信息将影响新进程中主线程的主窗口显示。
如果一个新的控制台窗口被创建,这些信息将影响这个控制台窗口。
创建新进程时指定的STARTUPONFO变量结构定义如下页所示:
进程的创建
Typedef struct{
DWORD cb; // 本结构长度
LPSTR lpReserved; // 保留字段
LPSTR lpDesktop; // 指定桌面名称
LPSTR lpTitle; // 指定控制台窗口名称
DWORD dwX; // 指定创建窗口位置坐标及大小信息
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars; // 控制台程序使用,指定控制台窗口行数
DWORD dwYCountChars;
DWORD dwFillAttributes; // 控制台程序使用,指定控制台窗口背景色
DWORD dwFlags; // 标志,决定结构中那些成员值有效
WORD wShowWindow; // 窗口显示方式
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput; // 控制台使用,几个标准句柄
HANDLE hStdOutput;
HANDLE hStdError;
} STRTUPINFO, *LPSTARUPINFO;
// 结构的可用名称
这个结构包含了:
1、父进程传递给子进程的一些显示信息;
2、图形界面的新进程主线程的主窗口显示相关变量设置;
3、控制台界面中控制台窗口的显示的相关变量设置。
4、三个句柄是用于设定供控制台输入和输出用的缓存的句柄:
按照默认设置,h S t d I n p u t 用于标识键盘缓存,h S t d O u t p u t 和h S t d E r r o r用于标识控制台窗口的缓存
创建子进程API函数
CreateProcess函数,其原型为:
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR mandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags, // 见p152(初步了解)
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTURINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
CreateProcess() 的功能是建立并执行child process?
详细信息可在msdn上获得
PROCESS_INFORMATION结构

最近更新

农村房子赠与协议书(9篇) 17页

3D打印金属材料研究-洞察阐释 35页

全球疫情监测与预警-洞察阐释 35页

农作物损害赔偿协议(6篇) 16页

2023年教师资格证考试中学教育知识与能力权威.. 14页

激励奖金发放制度 2页

T透过(穿透)效应专家讲座 10页

2023年组织行为学形成性考试 14页

2024年云南水利水电职业学院单招职业适应性测.. 57页

2024年保定幼儿师范高等专科学校单招职业倾向.. 56页

2024年兴安职业技术学院单招职业适应性测试必.. 56页

2024年包头铁道职业技术学院单招职业倾向性考.. 56页

2024年南昌工学院单招职业技能考试必刷测试卷.. 57页

2024年合肥共达职业技术学院单招职业技能考试.. 57页

2024年吐鲁番职业技术学院单招职业适应性考试.. 55页

2024年四川航天职业技术学院单招职业技能测试.. 44页

神经内分泌学专家讲座 59页

数字化转型推动养老金融服务的普惠发展 26页

劳动安全知识科普动画模块——2025年校园主题.. 22页

中医内科学痴呆 32页

后疫情时代2025线上线下教育融合创新实践课件.. 22页

2025年北师大版二年级下册数学第五单元同步检.. 6页

碎石桩作业安全技术交底 3页

上海市犬只绝育证明书 3页

EPC项目质量管理措施 15页

2022写给法院的悔过书 8页

法国sofradir集团及其子公司ULIS-SAS(2014011.. 4页

佛说长寿灭罪护诸童子陀罗尼经注音版本 53页

【节日讲章】儿童节讲章:让孩子在神面前长大.. 7页

灵界的默示 17页