- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Window的s核心编程---作业
Windows程序设计之作业 2.4 线程 作业的引入 Windows提供了一个作业(job)内核对象, 它允许我们将进程组合在一起并创建一个 “沙箱”来限制进程能够做什么。 可以将作业对象想象成一个进程容器。 但是创建只包含一个进程的作业同样非常有用, 因为这样可以对进程施加平时不能施加的限制 Wi n d o w s并不维护进程之间的父/子关系。即使父进程已经终止运行,子进程仍然会继续运行。 Win32 API Win32 API提供了一系列处理作业的函数接口,来向应用程序提供多线程的功能 用Win32 API直接编写应用程序要求程序员对Windows操作系统有一定的了解 直接用Win32 API编写的应用程序,程序的执行代码小,运行效率高 使用win32线程API 创建作业对象 HANDLE CreateJobObject( PSECURITY_ATTRIBUTES psa, PCTSTR pszName); 最后一个参数对此作业对象进行命名,使其能够由另一个进程通过OpenJobObject函数进行访问 对作业中的进程施加限制 创建好一个作业之后,接着一般会根据作业中的进程能够执行哪些操作来建立一个沙箱(即施加限制)。可以向作业应用以下几种类型的限制: (1)基本限额和扩展基本限额,用于防止作业中的进程独占系统资源; (2)基本UI限制,用于防止作业内的进程更改用户界面; (3)安全限额,用于防止作业内的进程访问安全资源(文件。注册表子项等); 对作业中的进程施加限制 BOOL SetInformationJobObject( HANDLE hJob, //要限制的作业 //枚举类型,制定要施加到限制类型 JOBOBJECTINFOCLASS JobObjectInformationClass, PVOID pJobObjectInformation,// 数据结构地址,具体到限制设置 DWORD cbJobObjectInformationSize);//数据结构大小 对作业中的进程施加限制 对作业中的进程施加限制 对作业中的进程施加限制 对作业中的进程施加限制 查询作业限制 BOOL QueryInformationJobObject( HANDLE hJob, JOBOBJECTINFOCLASS JobObjectInformationClass, PVOID pvJobObjectInformation, DWORD cbJobObjectInformationLength, PDWORD pdwReturnLength); 你为该函数传递作业的句柄(就像你对SetInformationJobObject操作时那样),这些句柄包括用于指明你想要的限制信息的枚举类型,函数要进行初始化的数据结构的地址,以及包含该结构的数据块的长度。最后一个参数是pdwReturnLength,用于指向该函数填写的DWORD,它告诉你有多少字节放入了缓存。如果你愿意的话,可以(并且通常)为该参数传递N U L L。 QueryInformationJobObject第二个参数设置 调用Query Information Job Object,为第二个参数传递Job Object Basic Accounting Information ,并传递JOBOBJECT _ BASIC _ ACCOUNTING _ IN FORMATION结构的地址 QueryInformationJobObject第二个参数设置 调用Query Information Job Object,可以进行一次函数调用,以同时查询基本统计信息和I/O统计信息。为此,必须为第二个参数传递JobObjectBasicAndIoAccountingInformation ,并传递JOBObject_BASIC_AND_IO_ACCOUNTING_INFORMATION结构的地址 QueryInformationJobObject第二个参数设置 调用QueryInformationJobObject 作业对象信息查询 BOOL GetProcessIoCounters( HANDLE hProcess, PIO_COUNTERS pIoCounters);示例: HANDLE hJob=CreateJobObject(NULL,TEXT(“tian”)); //创建作业对象 AssignProcessToJobObject(hJob,GetCurrentProcess()); 进程放入作业中 CloseHandle(hJob); //关闭作业hJob=OpenJobObject(JOB_OB
您可能关注的文档
- Verilog有的限状态机设计.ppt
- Verilog语言的入门1.ppt
- verilog的语法.pdf
- VF02Visual FoxPro 6.的0概述.ppt
- Ver的ilog的用途.ppt
- VF03 数据的及其运算.ppt
- Verilog语的言设计ppt.ppt
- VER的ILOG HDL基础知识.pdf
- VF09 控的件的使用.ppt
- VFP的第三章课后习题.pdf
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
文档评论(0)