有时候须要把一些进程集中管理,如终止一个进程以及它产生的子进程,但因为Windows并无维护进程间父子关系,因此除非进程自己以某种方式记录这些信息,不然很难作到管理这种父子进程树。而做业(job)刚好能解决这一问题。 安全
Job就像是一个"沙箱"或者进程容器,不只能将多个进程放在一块儿管理,还能对其包含的进程施加额外的限制,例如:做业中的进程能使用的CPU时间,是否能注销,是否能方位用户对象等。 函数
IsProcessInJob: 判断进程是否属于某个已有的Job spa
CreateJobObject:建立做业 orm
SetInformationJobObject:对做业及其中的进程施加限制,可能的安全限制见下表 对象
AssignProcessToJobObject:将进程放入指定的Job,注意,已经在某个Job中的进程不能从新制定,也不能将它从该Job中移除,这样的安全机制能保证进程不能脱离对其施加的安全限制。 进程
CloseHandle关闭Job句柄时不会致使Job中的进程结束,只是Job对象添加了删除标志,Job会等待其中全部的进程结束,才被删除。 资源
SetInformationJobObject it 限制类型io |
参数table |
描述 |
基本限额 |
JobObjectBasicLimitInformation |
防止Job中的进程独占系统资源 |
扩展基本限额 |
JobObjectExtendedLimitInformation |
同上 |
基本的UI限制 |
JobObjectBasicUIRestrications |
防止进程更改用户界面 |
安全限额 |
JobObjectSecurityLimitInformation |
防止进程访问安全资源(文件,注册表) |
TerminatebObject:终止job中全部的进程,并设置同一返回值
QueryInformationJobObject:查询job中的进程信息以及相应的限制