1. 作业的定义.
可以简单的将作业视为进程的一个容器.
2. 使用"作业"的意义
可以把一个进程或许多放在同有个作业里, 设置一些限制条件, 以便限制进程的一些操作.创建包含单个进程的作业也是有用的,这样可以添加通常情况下不能添加的限制.
3. 过程
(1)创建作业
HANDLE CreateJobObject(
PSECURITY_ATTRIBUTES psa;
PCTSTR pszName
);
(2)创建进程
(3)把新建的进程放入到作业中:
BOOL AssignProcessToJobObject(
HANDLE hJob, //建的作业
HANDLE hProcess //新建的进程
);
4. 对作业进程的限制
(1)基本限制和扩展基本限制,用于防止作业中的进程垄断系统资源;
(2) 基本的UI限制,用于限制作业中的进程修改用户界面;
(3)安全性限制,防止作业中的进程访问保密资源.
需调用下面的这个函数:
BOOL SetInfoMationJobObject
(
HANDLE hJob, //标示要限制的作业
JOBOBJECTINFOCLASS JobObjectInfomationClass, //枚举要使用的限制类型
PVOID pJobObjectInfomation, //包含限制设置值的数据结构的地址
DWORD cbJobObjectInfomationLength //用语指明该结构的大小
);
5. 查询限制信息
BOOL QueryInformationJobObject
(
HANDLE hJob,
JOBOBJECTINFOCLASS JobObjectInformationClass,
PVOID pvJobObjectInformation,
DWORD cbJobObjectInformationLength,
PDWORD pdwReturnLength
);