作业,进程,线程

作业是进程的容器,而且是个有进无出的容器.(不可以让一个进程退出容器,进程创建的子进程与作业可以无关,需要设置SetInformationJobObject)既然是个容器,那进程必然要受到作业的限制.有基本限制,扩展限制,UI限制,安全限制.相关的API如下:

IsProcessInJob                       要把一个进程加入作业,事先最好判断下.

 CreateJobObject                   创建作业对象

OpenJobObject                      打开作业对象

 closeHandle                          关闭内核作业对象

 

 

 QueryInformationJobObject          查询作业信息

 SetInformationJobObject              设置作业信息 这两个函数的参数一般是一个类型对应一个数据结构

相关的API有:

 GetProcessTimes                           获取进程的时间

GetProcessIoCounters                   获取进程的I/0

 

 

AssignProcessToJobObject                把一个进程添加到作业对象(:)一条不归路哈,没有回头路了). TerminateJobObject 杀死作业对象的所有进程 容器可以监视进程的行为,这一块知识Win32核心编程说的不深,目前只知道用端口通信.看了源代码后,应该就比较清楚了.

 

 

顺便提下进程,线程 进程是线程的容器.两部分:1.进程内核对象.2.4GB的地址空间.(线程,DLL,环境变量块,内核通通在里面.)每个进程都有一个页目录,每个页目录的高半部分几乎一样,除了两项页目录项. 所以每个进程有独立的4GB虚拟地址空间.同时2G的内核虚拟地址空间又是共享的.(具体看线性转换和页转换).

 

线程主要是两部分.1.线程内核对象. 2.栈(包括用户栈和内核栈). 线程主要有1.UI线程(一般是主线程).2.处理繁重事务(后台线程).

 

 

获取路径 GetModlueFileNameEx (用户角度)

GetProcessImageFileName (内核角度)

 QueryFullProcessImageName (最好用这个)

写的笔记,有错误希望指出来哈.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值