def CanCreateJobObject(): currentProc = GetCurrentProcess() if IsProcessInJob(currentProc): jobinfo = QueryInformationJobObject(HANDLE(0), 'JobObjectExtendedLimitInformation') limitflags = jobinfo['BasicLimitInformation']['LimitFlags'] return bool(limitflags & JOB_OBJECT_LIMIT_BREAKAWAY_OK) or bool(limitflags & JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK) else: return True
def child(): print 'Starting child' currentProc = GetCurrentProcess() injob = IsProcessInJob(currentProc) print "Is in a job?: %s" % injob can_create = CanCreateJobObject() print 'Can create job?: %s' % can_create process = Popen('c:\\windows\\notepad.exe') assert process._job jobinfo = QueryInformationJobObject(process._job, 'JobObjectExtendedLimitInformation') print 'Job info: %s' % jobinfo limitflags = jobinfo['BasicLimitInformation']['LimitFlags'] print 'LimitFlags: %s' % limitflags process.kill()