c – 如何获取当前进程的作业对象(如果有)?

Windows Job Objects的上下文中,如何获取当前进程的作业对象(如果它在作业对象中)? IsProcessInJob函数允许我测试给定进程(例如当前进程)是否在给定(或任何)作业中 – 但它不会产生匹配作业的句柄.

解决方法

如果您只想查找正在运行的配额/限制,或者枚举作业中的所有其他进程,则无需获取当前进程的Job对象.

您可以使用NULL调用QueryinformationJobObject,这将是当前进程的Job对象.

> QueryinformationJobObject:http://msdn.microsoft.com/en-us/library/ms684925(VS.85).aspx
>工作对象:http://msdn.microsoft.com/en-us/library/ms684161(VS.85).aspx

要回答具体问题,请致电IsProcessInJob,了解您是否在工作中.

您可以通过将NULL传递给QueryinformationJobObject来找到有关Job的所有内容

您的子进程将自动继承您的作业,除非您传递CREATE_BREAKAWAY_FROM_JOB且作业已设置JOB_OBJECT_LIMIT_BREAKAWAY_OK或JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK.在这些情况下,您可以根据需要将流程分配给新工作.

因此,在不知道句柄的情况下,您可以找到当前作业的所有内容,并在当前作业中分配子进程,或者如果您有权限,则可以在没有当前作业的情况下进行分配.即你可以做几乎手柄允许你做的所有事情.

唯一的例外是将其复制到另一个兄弟进程.如果您需要这样做,您必须让父进程以某种方式向您传递句柄值.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...