作业中进程

本文介绍如何使用Windows作业对象来管理进程,包括进程的创建、加入作业、限制行为、查询统计及监听进程变化等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、进程在创建时,使用的是CREATE_SUSPENDED标志,这样会创建进程,但是不执行任何代码。
      由于要创建进程的进程不是作业的一部分,所以新创建的进程也不是作业的一部分,如果立即开始执行代码,
      它会“逃离”沙箱,成功做一些我想禁止的事。
2、在创建子进程后且在运行之前,必须调用函数BOOL AssignProcessToJobObject(HANDLE hJob,HANDLE hProcess);
       将进程显示地放入我新建的作业中。
3、可以使用IsProcessInJob函数进行检查。一旦进程已属于作业的一部分,它就不能再移动到另一个作业中。
4、当一个进程生成了另一个进程的时候,新进程将自动成为父进程作业的一部分。
5、打开“沙箱”的JOBOBJECT_BASIC_LIMIT_INFORMATION的LimitFlags成员的JOB_OBJECT_LIMIT_BREAKAWAY_OK标志,
       告诉新生成的进程可以在作业外部执行,如果希望新生成的进程来控制作业,可以调用CreateProcess函数时,
       指定CREATE_BREAKAWAY_FROM_JOB标志。
6、终止作业中的所有线程:BOOL TerminateJobObject(HANDLE hJob,UINT uExitCode);
7、查询作业统计信息QuaryInformationJobObject
8、获得作业中进程的创建与终止信息:创建一个I/O完成端口内核对象,并将作业与端口关联。然后,必须有一个
        或者多个线程等待作业通知到达完成端口。
        SetInformationJobObject----将端口与作业关联起来
        GetQueuedCompletionStatus--监视完成端口

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值