作业(Job)

有时候需要把一些进程集中管理,如终止一个进程以及它产生的子进程,但由于Windows并没有维护进程间父子关系,所以除非进程本身以某种方式记录这些信息,否则很难做到管理这种父子进程树。而作业(job)恰好能解决这一问题。

Job就像是一个"沙箱"或者进程容器,不仅能将多个进程放在一起管理,还能对其包含的进程施加额外的限制,例如:作业中的进程能使用的CPU时间,是否能注销,是否能方位用户对象等。

相关函数

IsProcessInJob: 判断进程是否属于某个已有的Job

CreateJobObject:创建作业

SetInformationJobObject:对作业及其中的进程施加限制,可能的安全限制见下表

AssignProcessToJobObject:将进程放入指定的Job,注意,已经在某个Job中的进程不能重新制定,也不能将它从该Job中移除,这样的安全机制能保证进程不能脱离对其施加的安全限制。

CloseHandle关闭Job句柄时不会导致Job中的进程结束,只是Job对象添加了删除标志,Job会等待其中所有的进程结束,才被删除。

 

SetInformationJobObject

限制类型

参数

描述

基本限额

JobObjectBasicLimitInformation

防止Job中的进程独占系统资源

扩展基本限额

JobObjectExtendedLimitInformation

同上

基本的UI限制

JobObjectBasicUIRestrications

防止进程更改用户界面

安全限额

JobObjectSecurityLimitInformation

防止进程访问安全资源(文件,注册表)

 

TerminatebObject:终止job中所有的进程,并设置同一返回值

QueryInformationJobObject:查询job中的进程信息以及相应的限制

 

 

读Windows核心编程-5-作业的更多相关文章

  1. 回忆读windows 核心编程

    看<windows 核心编程> 第五版到纤程了,下一章节即将介绍内存体系编程.如果做window平台下的开发,我感觉此书一定要读.记得开始讲解了window的基础,然后讲解内核对象.内核对 ...

  2. 《Windows核心编程》读书笔记 上

    [C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...

  3. 【Windows】windows核心编程整理(上)

    小续 这是我11年看<windows核心编程>时所作的一些笔记,现整理出来共享给大家 windows核心编程整理(上) windows核心编程整理(下) 线程的基础知识 进程是不活泼的,进 ...

  4. C++Windows核心编程读书笔记

    转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...

  5. 【转】《windows核心编程》读书笔记

    这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入 ...

  6. windows核心编程 - 线程同步机制

    线程同步机制 常用的线程同步机制有很多种,主要分为用户模式和内核对象两类:其中 用户模式包括:原子操作.关键代码段 内核对象包括:时间内核对象(Event).等待定时器内核对象(WaitableTim ...

  7. windows核心编程---第九章 同步设备IO与异步设备IO之同步IO

    同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...

  8. windows核心编程---第八章 使用内核对象进行线程同步

    使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ...

  9. 《Windows核心编程》第5版 学习进度备忘

    学习资源:<Windows核心编程>第5版 知识基础支持: 本书与<Windows程序设计>第5版珍藏版结合很好,二者重叠内容不多,二者互补性强,而且相关方面的优秀书籍 跳过的 ...

随机推荐

  1. BAT的面试经验_摘抄

    一.心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲. 找工作之前,有一点你必须清楚,就是找工作是一件看缘分的事情,不是你很牛逼,你就一定能进你想进的公 ...

  2. Centos安装lnmp环境

    1:查看环境: [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 [root@10 ...

  3. WCF Misconfiguration: Security Not Enabled

    Abstract: No transport or message security has been defined. Explanation: Applications that transmit ...

  4. python实现监控URL的一个值小于规定的值--邮件报警

    监控URL的一个值小于规定的值--邮件报警 #!/usr/bin/env python #-*- coding:utf-8 -*- __author__ = 'liudong' import urll ...

  5. asp.net LINQ连接数据库SQL执行数据的增加、修改、删除、查询操作

    查询数据库中的数据 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  6. 有关Select option 元素

    动态添加option元素以及option元素被选中方法: function getType() { ); shadowCoverTipAdd("加载中,请稍候.."); $.aja ...

  7. libpng安装与配置(Win7+VS2010)

    一.下载 libpng:http://libmng.com/pub/png/libpng.html zlib:http://www.zlib.net/ IDE:VS2010 二.编译 将下载的两个zi ...

  8. [转载] Java高新技术第一篇:类加载器详解

    本文转载自: http://blog.csdn.net/jiangwei0910410003/article/details/17733153 首先来了解一下字节码和class文件的区别: 我们知道, ...

  9. Pi# - Raspberry Pi GPIO Library for .NET

    Project Description Pi# (pronounced “Pi Sharp”) is a library to expose the GPIO functionality of the ...

  10. c++总结01

    今天编写了四个小程序分别是“石头剪刀布游戏”“数字之间加空格输出”“蛇形矩阵”“螺旋矩阵”. 通过编写石头剪刀布代码 熟悉了switch语句和if语句的使用,同时也运用了do..while语句,其中 ...