- 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
您可能关注的文档
最近下载
- 2023年全国硕士研究生入学统一考试英语(二)试题.doc
- coc七版半自动人物卡v1.8.9 .xlsx VIP
- 2025会计考试题库及答案(通用6篇) .pdf VIP
- 2024年湖南省益阳市高职单招综合素质考试试题及答案解析.docx
- 小学六年级下册数学 期末测试卷及答案.docx
- 2024年芜湖职业技术学院单招职业适应性测试试题库 带答案(实用).docx
- 2024年中级注册安全工程师《专业实务-建筑施工安全》真题及答案解析.pdf
- 乌鲁木齐地区2025年高三年级第一次质量监测(一模)物理试卷(含官方答案).pdf
- 2014款上汽大众途观_汽车使用手册用户操作图示图解详解驾驶指南车主车辆说明书电子版.pdf
- 秋叶 - COC七版半自动人物卡v2.0.1(通用)(2022年-2023年).pdf VIP
文档评论(0)