[This is preliminary documentation and subject to change.]
The JOBOBJECT_END_OF_JOB_TIME_INFORMATION structure specifies the action the system will perform when an end-of-job time limit is exceeded.
typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
DWORD EndOfJobTimeAction;
} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;
Value | Meaning |
---|---|
JOB_OBJECT_TERMINATE_AT_END_OF_JOB | Terminates all processes and sets the exit status to ERROR_NOT_ENOUGH_QUOTA. The processes cannot prevent or delay their own termination. The job object is set to the signaled state and remains signaled until this limit is reset. No additional processes can be assigned to the job object until the limit is reset. This is the default termination action. |
JOB_OBJECT_POST_AT_END_OF_JOB | Posts a completion packet to the completion port using the PostQueuedCompletionStatus function. After the completion packet is posted, the system clears the end-of-job time limit, and processes in the job object can continue their execution. If no completion port is associated with the job when the time limit has been exceeded, the action taken is the same as for JOB_OBJECT_TERMINATE_AT_END_OF_JOB. |
The end-of-job time limit is specified in the PerJobUserTimeLimit member of the JOBOBJECT_BASIC_LIMIT_INFORMATION structure.
To associate a completion port with a job object, use the JOBOBJECT_ASSOCIATE_COMPLETION_PORT structure.
Windows NT: Requires version 5.0 or later.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in winnt.h.
Processes and Threads Overview, Process and Thread Structures, JOBOBJECT_ASSOCIATE_COMPLETION_PORT, JOBOBJECT_BASIC_LIMIT_INFORMATION, PostQueuedCompletionStatus, QueryInformationJobObject, SetInformationJobObject