Как получить объект задания (если есть) для текущего процесса?

в контексте Windows Объекты Задание, Как я могу получить объект задания для текущего процесса (если он находится в объекте задания)? The IsProcessInJob функция позволяет мне проверить, находится ли данный процесс (например, текущий) в заданном (или любом) задании, но он не дает дескриптора соответствующего задания.

1 ответов


если вы просто хотите узнать, какие квоты / ограничения вы используете, или перечислить все другие процессы в задании, вам не нужно получать объект задания для текущего процесса.

можно назвать QueryInformationJobObject с NULL, который будет объектом задания текущего процесса.

чтобы ответить на конкретный вопрос, позвоните IsProcessInJob узнайте, если вы находитесь в работе.

вы можете узнать все о работе, передав NULL в QueryInformationJobObject

ваши дочерние процессы унаследуют вашу работу автоматически, если вы не передадите CREATE_BREAKAWAY_FROM_JOB и задание JOB_OBJECT_LIMIT_BREAKAWAY_OK или JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK установлен. В этих случаях можно назначить процесс новому заданию, если желание.

поэтому, не зная дескриптора, вы можете узнать все о своей текущей работе и назначить дочерние процессы в текущем задании или, если у вас есть разрешение, без текущего задания. Т. е. вы можете сделать почти все, что ручка позволит вам сделать.

единственным исключением является дублирование его на другой процесс брата. Если вам нужно это сделать, вам нужно будет каким-то образом передать значение дескриптора родительскому процессу.