对作业中进程一些操作
来源:互联网 发布:淘宝女装便宜好看店铺 编辑:程序博客网 时间:2024/05/16 11:37
1、Windows提供了一个作业(job)内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么。
2、可以把作业对象想像成一个进程容器,创建只包含一个进程的作业同样有用,因为这样可以对进程施加平时不能施加的限制。
3、IsProcessInJob(HANDLE hProcess,HANDLE hJob, PBOOL pbInJob);判断是否与一个作业相关联,在msdn上找不到太多资料,估计只是在windows vista中有吧。
4、HANDLE CreateJobObject(PSECURITY_ATTRIBYTES psa,PCTSTR pszName);创建一个新的作业内核对象。
5、OpenJobObject(DWORD dwDesiredAccess,BOOL bInheritHandle,PCTSTR pszName);用来访问一个作业内核对象。
6、关闭作业的句柄会导致所有进程都不可以访问此作业,即使这个作业仍然存在。
7、对作业中的进程施加限制-----几种类型的限制:
1)、基本限制和扩展基本限制,用于防止作业中的进程独占系统资源。
2)、基本的UI限制,用于防止作业内的进程更改用户界面。
3)、安全限额,用于防止作业内的进程访问安全资源(文件、注册表子项等)。
8、BOOL SetInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,PVOID pJobObjectInformation,DWORD cbJobObjectInformationSize);
通过调用该函数向作业施加限制。第一个参数是指定要限制的作业。第二个参数是一个枚举类型,指定了要施加的限制类型。
第三个参数是一个数据结构地址,包含具体的限制设置,第四个数据结构大小。
9、限制类型与对应的数据结构:
JobObjectBasicLimitInformation-------------JOBOBJECT_BASIC_LIMIT_INFORMATION(基本限额)
JobObjectExtendedLimitInformation----------JOBOBJECT_EXTENDED_LIMIT_INFORMATION(扩展后的基本限额)
JobObjectBasicUIRestrictions---------------JOBOBJECT_BASIC_UI_RESTRICTIONS(基本的UI限制)
JobObjectSecurityLimitInformation----------JOBOBJECT_SECURITY_LIMIT_INFORMATION(安全限制)
10、可以通过下面的函数查询限制
BOOL QueryInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,PVOID pvJobObjectInformation,DWORD cbJobObjectInformationSize,PDWORD pdwReturnSize);
2、可以把作业对象想像成一个进程容器,创建只包含一个进程的作业同样有用,因为这样可以对进程施加平时不能施加的限制。
3、IsProcessInJob(HANDLE hProcess,HANDLE hJob, PBOOL pbInJob);判断是否与一个作业相关联,在msdn上找不到太多资料,估计只是在windows vista中有吧。
4、HANDLE CreateJobObject(PSECURITY_ATTRIBYTES psa,PCTSTR pszName);创建一个新的作业内核对象。
5、OpenJobObject(DWORD dwDesiredAccess,BOOL bInheritHandle,PCTSTR pszName);用来访问一个作业内核对象。
6、关闭作业的句柄会导致所有进程都不可以访问此作业,即使这个作业仍然存在。
7、对作业中的进程施加限制-----几种类型的限制:
1)、基本限制和扩展基本限制,用于防止作业中的进程独占系统资源。
2)、基本的UI限制,用于防止作业内的进程更改用户界面。
3)、安全限额,用于防止作业内的进程访问安全资源(文件、注册表子项等)。
8、BOOL SetInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,PVOID pJobObjectInformation,DWORD cbJobObjectInformationSize);
通过调用该函数向作业施加限制。第一个参数是指定要限制的作业。第二个参数是一个枚举类型,指定了要施加的限制类型。
第三个参数是一个数据结构地址,包含具体的限制设置,第四个数据结构大小。
9、限制类型与对应的数据结构:
JobObjectBasicLimitInformation-------------JOBOBJECT_BASIC_LIMIT_INFORMATION(基本限额)
JobObjectExtendedLimitInformation----------JOBOBJECT_EXTENDED_LIMIT_INFORMATION(扩展后的基本限额)
JobObjectBasicUIRestrictions---------------JOBOBJECT_BASIC_UI_RESTRICTIONS(基本的UI限制)
JobObjectSecurityLimitInformation----------JOBOBJECT_SECURITY_LIMIT_INFORMATION(安全限制)
10、可以通过下面的函数查询限制
BOOL QueryInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,PVOID pvJobObjectInformation,DWORD cbJobObjectInformationSize,PDWORD pdwReturnSize);
typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { LARGE_INTEGER PerProcessUserTimeLimit;//分配给每个进程的最大用户模式时间 LARGE_INTEGER PerJobUserTimeLimit;//限制分配给作业对象的最大用户模式时间 DWORD LimitFlags;//指定将哪些限制应用于作业 SIZE_T MinimumWorkingSetSize;//指定每个进程的最小工作集 SIZE_T MaximumWorkingSetSize;//指定每个进程的最大工作集 DWORD ActiveProcessLimit;//指定作业中能并发运行的进程的最大数量 ULONG_PTR Affinity;//指定能够运行进程的CPU子集 DWORD PriorityClass;//指定关联的所有进程的优先集 DWORD SchedulingClass;//为作业中的线程指定一个相对时间量差} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION;typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;//基本的,就是上面那个结构体 IO_COUNTERS IoInfo;//保留成员,不应以任何方式访问 SIZE_T ProcessMemoryLimit;//只读,进程所需的存储空间的峰值 SIZE_T JobMemoryLimit;//只读,全部进程所需的存储空间的峰值 SIZE_T PeakProcessMemoryUsed;//作业中任何一个进程所使用的已调拨的存储空间。 SIZE_T PeakJobMemoryUsed;//作业中所有进程所使用的已调拨的存储空间。} JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION;typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { DWORD UIRestrictionsClass;//标志位} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS;typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { DWORD SecurityLimitFlags;//是否不允许程序员访问 HANDLE JobToken;//由作业中所有进程使用的访问令牌 PTOKEN_GROUPS SidsToDisable;//指定要禁止对哪些SID进行访问检查 PTOKEN_PRIVILEGES PrivilegesToDelete;//指定从访问令牌中删除哪些特权 PTOKEN_GROUPS RestrictedSids;//指定将一组只能拒绝的SID} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION;
- 对作业中进程一些操作
- 对作业中进程一些操作
- 对系统进程的一些操作!
- Windows下对进程的一些操作
- Linux中对进程的操作
- MOSS中对列表的一些操作
- MOSS中对列表的一些操作
- Unix中对CPU的一些操作
- C#中对word的一些操作
- c++中对文件的一些操作
- jquery中对select的一些操作
- eclipse中对tomcat的一些操作
- 作业中进程
- 列出进程 对进程操作
- 对进程的操作
- 对datagridview一些操作
- 作业可以对作业中的进程进行一系列的限制
- MOSS中对列表的一些操作(创建,查询等)
- struts用配置文件进行校验
- PHP文件缓存secache
- Xls XMLP Output opening in Browser, not Excel
- 第十六周任务(三)
- 从一个博客,看看老师,看看学生,也看看我们的大学教育
- 对作业中进程一些操作
- 我的学生具有的优势,是保证他们大部分可以成为某个(IT)行业的顶尖人才的基础
- poj 2935 Basic Wall Maze bfs
- 希尔排序算法原理及JAVA实现
- 什么是游标
- 基于用户投票的排名算法
- android aidl的使用
- C++为什么不叫++C?——浅谈前自增与后自增的区别
- 参加云计算大会的体会