- 1
- 0
- 约4.69千字
- 约 34页
- 2017-08-10 发布于广东
- 举报
调用CreateProcess函数创建进程 创建WIN32进程的具体步骤: ? 打开将在进程中被执行的映像文件(.EXE)。 ? 创建Windows2000/XP执行体进程对象。 ? 创建初始线程(堆栈、描述表、执行体线程对象)。 ? 通知WIN32子系统已创建了一个新的进程,以便它可设置新的进程和线程。 ?启动初始线程的执行。 ? 在新进程和线程的描述表中完成地址空间的初始化,加载所需的DLL,并开始程序的执行 调用CreateThread函数创建线程 创建WIN32线程的具体步骤: ? 在进程地址空间内为线程创建用户态堆栈;初始化线程描述表; ? 调用NtCreateThread创建执行体线程对象。包括:增加进程中的线程计数,创建并初始化执行体线程块,生成新线程ID,从非页交换区分配线程的内核堆栈,设置线程环境块TEB,设置线程起始地址和用户指定的WIN32起始地址,设置KTHREAD块,设置指向进程访问令牌的指针和创建时间; ? 通知WIN32子系统已创建新线程,以便设置新的进程和线程; ? 置新线程为准备态,把其句柄和ID返回到调用进程;调用ResumeThread,线程将被激活并调度执行。 Windows进程和线程状态 资源 可用 事件完成但 资源不可用 事件完成 资源可用 阻塞 挂起 终止 可运行 不可运行 选中 切换 抢占或时间片到 Running
原创力文档

文档评论(0)