网站大量收购闲置独家精品文档,联系QQ:2885784924

Window的s核心编程---作业.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档