#include "psp.h"#include "winerror.h"Go to the source code of this file.
Functions | |
| NTSTATUS NTAPI | NtCreateJobObject (OUT PHANDLE JobHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL) |
| NTSTATUS NTAPI | NtOpenJobObject (OUT PHANDLE JobHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes) |
| NTSTATUS NTAPI | NtAssignProcessToJobObject (IN HANDLE JobHandle, IN HANDLE ProcessHandle) |
| NTSTATUS | PspAddProcessToJob (PEJOB Job, PEPROCESS Process) |
| VOID | PspRemoveProcessFromJob (PEJOB Job, PEPROCESS Process) |
| VOID | PspExitProcessFromJob (PEJOB Job, PEPROCESS Process) |
| VOID | PspJobDelete (IN PVOID Object) |
| VOID | PspJobClose (IN PEPROCESS Process, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount) |
| NTSTATUS | NtQueryInformationJobObject (IN HANDLE JobHandle, IN JOBOBJECTINFOCLASS JobObjectInformationClass, OUT PVOID JobObjectInformation, IN ULONG JobObjectInformationLength, OUT PULONG ReturnLength OPTIONAL) |
| NTSTATUS | NtSetInformationJobObject (IN HANDLE JobHandle, IN JOBOBJECTINFOCLASS JobObjectInformationClass, IN PVOID JobObjectInformation, IN ULONG JobObjectInformationLength) |
| VOID | PspApplyJobLimitsToProcessSet (PEJOB Job) |
| VOID | PspApplyJobLimitsToProcess (PEJOB Job, PEPROCESS Process) |
| NTSTATUS | NtTerminateJobObject (IN HANDLE JobHandle, IN NTSTATUS ExitStatus) |
| VOID | PsEnforceExecutionTimeLimits (VOID) |
| BOOLEAN | PspTerminateAllProcessesInJob (PEJOB Job, NTSTATUS Status, PSLOCKPROCESSMODE LockMode) |
| VOID | PspFoldProcessAccountingIntoJob (PEJOB Job, PEPROCESS Process) |
| NTSTATUS | PspCaptureTokenFilter (KPROCESSOR_MODE PreviousMode, PJOBOBJECT_SECURITY_LIMIT_INFORMATION SecurityLimitInfo, PPS_JOB_TOKEN_FILTER *TokenFilter) |
| BOOLEAN | PsChangeJobMemoryUsage (SSIZE_T Amount) |
| VOID | PsReportProcessMemoryLimitViolation (VOID) |
Variables | |
| POBJECT_TYPE | IoCompletionObjectType |
| ULONG | PspJobInfoLengths [] |
| ULONG | PspJobInfoAlign [] |
|
||||||||||||
|
Definition at line 266 of file psjob.c. References _WIN32_JOBCALLOUT_PARAMETERS::CalloutType, _WIN32_JOBCALLOUT_PARAMETERS::Data, ExAcquireResourceExclusive, ExReleaseResource, IsAdmin(), _WIN32_JOBCALLOUT_PARAMETERS::Job, KeEnterCriticalRegion, KeLeaveCriticalRegion, KPROCESSOR_MODE, MmDispatchWin32Callout(), NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PsFreeProcessSecurityFields, PsJobType, PsLockPollOnTimeout, PsLockProcess(), PsLockProcessSecurityFields, PspAddProcessToJob(), PsProcessType, PspSetPrimaryToken(), PspTerminateProcess(), PspW32JobCallout, PsUnlockProcess(), PsW32JobCalloutAddProcess, SeTokenIsAdmin(), Status, and TRUE.
|
|
||||||||||||||||
|
Definition at line 48 of file psjob.c. References EJOB, ExInitializeFastMutex, ExInitializeResource, ExSystemExceptionFilter(), FALSE, Handle, KeInitializeEvent, KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObCreateObject(), ObDereferenceObject, ObInsertObject(), ObjectAttributes, PAGED_CODE, ProbeForWriteHandle, PsGetCurrentProcess, PsJobType, PSP_DEFAULT_SCHEDULING_CLASSES, PspJobList, PspJobListLock, and Status.
|
|
||||||||||||||||
|
Definition at line 188 of file psjob.c. References ExSystemExceptionFilter(), Handle, KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObjectAttributes, ObOpenObjectByName(), PAGED_CODE, ProbeForWriteHandle, PsJobType, and Status.
|
|
||||||||||||||||||||||||
|
Definition at line 814 of file psjob.c. References _EJOB::ActiveProcesses, _EJOB::ActiveProcessLimit, _EJOB::Affinity, _PS_JOB_TOKEN_FILTER::CapturedGroupCount, _PS_JOB_TOKEN_FILTER::CapturedGroups, _PS_JOB_TOKEN_FILTER::CapturedGroupsLength, _PS_JOB_TOKEN_FILTER::CapturedPrivilegeCount, _PS_JOB_TOKEN_FILTER::CapturedPrivileges, _PS_JOB_TOKEN_FILTER::CapturedPrivilegesLength, _PS_JOB_TOKEN_FILTER::CapturedSidCount, _PS_JOB_TOKEN_FILTER::CapturedSids, _PS_JOB_TOKEN_FILTER::CapturedSidsLength, ExAcquireFastMutexUnsafe(), ExAcquireResourceShared, EXCEPTION_EXECUTE_HANDLER, ExReleaseFastMutexUnsafe(), ExReleaseResource, ExSystemExceptionFilter(), FALSE, _EJOB::Filter, _EPROCESS::Job, _EJOB::JobLock, _EJOB::JobMemoryLimit, _EPROCESS::JobStatus, KeEnterCriticalRegion, KeLeaveCriticalRegion, KeMaximumIncrement, KernelMode, _KPROCESS::KernelTime, KPROCESSOR_MODE, _EJOB::LimitFlags, _EJOB::MaximumWorkingSetSize, _EJOB::MemoryLimitsLock, _EJOB::MinimumWorkingSetSize, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObject, ObReferenceObjectByHandle(), _EPROCESS::OtherOperationCount, _EJOB::OtherOperationCount, _EPROCESS::OtherTransferCount, _EJOB::OtherTransferCount, PAGE_SHIFT, PAGED_CODE, _MMSUPPORT::PageFaultCount, _EPROCESS::Pcb, _EJOB::PeakJobMemoryUsed, _EJOB::PeakProcessMemoryUsed, _EJOB::PerJobUserTimeLimit, _EJOB::PerProcessUserTimeLimit, _EJOB::PriorityClass, ProbeForWrite(), ProbeForWriteUlong, _EJOB::ProcessListHead, _EJOB::ProcessMemoryLimit, PS_JOB_STATUS_ACCOUNTING_FOLDED, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PsGetCurrentProcess, PsJobType, PspJobInfoAlign, PspJobInfoLengths, _EPROCESS::ReadOperationCount, _EJOB::ReadOperationCount, _EPROCESS::ReadTransferCount, _EJOB::ReadTransferCount, RtlCopySidAndAttributesArray(), _EJOB::SchedulingClass, _EJOB::SecurityLimitFlags, _EJOB::ThisPeriodTotalKernelTime, _EJOB::ThisPeriodTotalUserTime, _EJOB::TotalKernelTime, _EJOB::TotalPageFaultCount, _EJOB::TotalProcesses, _EJOB::TotalTerminatedProcesses, _EJOB::TotalUserTime, TRUE, _EJOB::UIRestrictionsClass, _EPROCESS::UniqueProcessId, _KPROCESS::UserTime, _EPROCESS::Vm, _EPROCESS::WriteOperationCount, _EJOB::WriteOperationCount, _EPROCESS::WriteTransferCount, and _EJOB::WriteTransferCount.
|
|
||||||||||||||||||||
|
Definition at line 1323 of file psjob.c. References _EJOB::ActiveProcessLimit, _EJOB::Affinity, _WIN32_JOBCALLOUT_PARAMETERS::CalloutType, _WIN32_JOBCALLOUT_PARAMETERS::Data, ExAcquireFastMutexUnsafe(), ExAcquireResourceExclusive, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), ExReleaseFastMutexUnsafe(), ExReleaseResource, FALSE, Filter, IoCompletionObjectType, IoSetIoCompletion(), IsChild(), _WIN32_JOBCALLOUT_PARAMETERS::Job, JOB_WORKING_SET_CHANGE_RECORD, _EJOB::JobMemoryLimit, _EPROCESS::JobStatus, KeActiveProcessors, KeAttachProcess(), KeClearEvent, KeDetachProcess(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KeMaximumIncrement, KeReadStateProcess(), KernelMode, KPROCESSOR_MODE, _EJOB::LimitFlags, _JOB_WORKING_SET_CHANGE_HEAD::Links, _JOB_WORKING_SET_CHANGE_HEAD::Lock, _JOB_WORKING_SET_CHANGE_HEAD::MaximumWorkingSetSize, _EJOB::MaximumWorkingSetSize, _JOB_WORKING_SET_CHANGE_HEAD::MinimumWorkingSetSize, _EJOB::MinimumWorkingSetSize, MmAdjustWorkingSetSize(), MmDispatchWin32Callout(), MmEnforceWorkingSetLimit(), NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGE_SHIFT, PAGE_SIZE, PAGED_CODE, _EPROCESS::Pcb, _EJOB::PerJobUserTimeLimit, _EJOB::PerProcessUserTimeLimit, PJOB_WORKING_SET_CHANGE_RECORD, _EJOB::PriorityClass, ProbeForRead, _JOB_WORKING_SET_CHANGE_RECORD::Process, _EJOB::ProcessMemoryLimit, PS_JOB_STATUS_ACCOUNTING_FOLDED, PS_JOB_STATUS_LAST_REPORT_MEMORY, PS_JOB_STATUS_NEW_PROCESS_REPORTED, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_CLEAR_BITS, PsJobType, PSP_DEFAULT_SCHEDULING_CLASSES, PSP_NUMBER_OF_SCHEDULING_CLASSES, PspApplyJobLimitsToProcessSet(), PspCaptureTokenFilter(), PspFoldProcessAccountingIntoJob(), PspJobInfoAlign, PspJobInfoLengths, PspW32JobCallout, PspWorkingSetChangeHead, PsW32JobCalloutSetInformation, _EJOB::SchedulingClass, SeAssignPrimaryTokenPrivilege, SeCheckPrivilegedObject(), SeIncreaseBasePriorityPrivilege, SeIsChildTokenByPointer(), SeTokenIsAdmin(), SeTokenObjectType, TRUE, _EPROCESS::UniqueProcessId, _KPROCESS::UserTime, and _EPROCESS::Vm.
|
|
||||||||||||
|
Definition at line 2358 of file psjob.c. References ExAcquireResourceExclusive, ExReleaseResource, KeEnterCriticalRegion, KeLeaveCriticalRegion, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PsJobType, PsLockPollOnTimeout, PspTerminateAllProcessesInJob(), and TRUE.
|
|
|
Definition at line 2823 of file psjob.c. References _EPROCESS::CommitCharge, _EJOB::CompletionKey, _EJOB::CompletionPort, _EJOB::CurrentJobMemoryUsed, ExAcquireFastMutexUnsafe(), ExReleaseFastMutexUnsafe(), FALSE, IoSetIoCompletion(), _EPROCESS::Job, _EJOB::JobMemoryLimit, _EPROCESS::JobStatus, KeEnterCriticalRegion, KeLeaveCriticalRegion, _EJOB::LimitFlags, _EJOB::MemoryLimitsLock, _EJOB::PeakJobMemoryUsed, _EJOB::PeakProcessMemoryUsed, PS_JOB_STATUS_LAST_REPORT_MEMORY, PS_JOB_STATUS_NEW_PROCESS_REPORTED, PS_SET_BITS, PsGetCurrentProcess, TRUE, and _EPROCESS::UniqueProcessId. Referenced by MiInsertVad(), MiRemoveVad(), MiReturnPageTablePageCommitment(), MiSetProtectionOnSection(), MmAssignProcessToJob(), MmCleanProcessAddressSpace(), NtAllocateVirtualMemory(), and NtFreeVirtualMemory().
|
|
|
Definition at line 2396 of file psjob.c. References _EJOB::ActiveProcesses, _EJOB::CompletionKey, _EJOB::CompletionPort, _EJOB::EndOfJobTimeAction, _EJOB::Event, ExAcquireResourceExclusive, ExReleaseResource, FALSE, IoSetIoCompletion(), _EJOB::JobLock, _EPROCESS::JobStatus, KeMaximumIncrement, KeSetEvent(), _EJOB::LimitFlags, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObGetObjectPointerCount(), ObReferenceObject, _EPROCESS::Pcb, _EJOB::PerJobUserTimeLimit, _EJOB::PerProcessUserTimeLimit, _EJOB::ProcessListHead, PS_CLEAR_BITS, PS_JOB_STATUS_ACCOUNTING_FOLDED, PS_JOB_STATUS_LAST_REPORT_MEMORY, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_CLEAR_BITS, PsLockReturnTimeout, PspFoldProcessAccountingIntoJob(), PspJobList, PspJobListLock, PspTerminateAllProcessesInJob(), PspTerminateProcess(), _EJOB::ThisPeriodTotalUserTime, _EJOB::TotalTerminatedProcesses, _EPROCESS::UniqueProcessId, and _KPROCESS::UserTime. Referenced by KeBalanceSetManager().
|
|
||||||||||||
|
Definition at line 439 of file psjob.c. References _EJOB::ActiveProcesses, _EJOB::ActiveProcessLimit, _EJOB::CompletionKey, _EJOB::CompletionPort, _EJOB::Event, ExAcquireFastMutexUnsafe(), ExAcquireResourceExclusive, ExReleaseFastMutexUnsafe(), ExReleaseResource, FALSE, IoSetIoCompletion(), _EPROCESS::Job, _EPROCESS::JobLinks, _EJOB::JobLock, _EPROCESS::JobStatus, KeAttachProcess(), KeDetachProcess(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KeReadStateEvent(), _EJOB::LimitFlags, _JOB_WORKING_SET_CHANGE_HEAD::Lock, _EJOB::MaximumWorkingSetSize, _EJOB::MinimumWorkingSetSize, MmAdjustWorkingSetSize(), MmAssignProcessToJob(), MmEnforceWorkingSetLimit(), NTSTATUS(), NULL, PAGED_CODE, _EPROCESS::Pcb, _EJOB::ProcessListHead, PS_JOB_STATUS_ACCOUNTING_FOLDED, PS_JOB_STATUS_LAST_REPORT_MEMORY, PS_JOB_STATUS_NEW_PROCESS_REPORTED, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_BITS, PS_SET_CLEAR_BITS, PspApplyJobLimitsToProcess(), PspWorkingSetChangeHead, Status, _EJOB::TotalProcesses, TRUE, _EPROCESS::UniqueProcessId, and _EPROCESS::Vm. Referenced by NtAssignProcessToJobObject(), and PspCreateProcess().
|
|
||||||||||||
|
Definition at line 2262 of file psjob.c. References _KPROCESS::Affinity, _EJOB::Affinity, _EPROCESS::CommitChargeLimit, ExAcquireFastMutexUnsafe(), ExReleaseFastMutexUnsafe(), FALSE, KeSetAffinityThread(), KeSetDisableQuantumProcess(), _EJOB::LimitFlags, MEMORY_PRIORITY_FOREGROUND, _EJOB::MemoryLimitsLock, _MMSUPPORT::MemoryPriority, MmEnforceWorkingSetLimit(), NTSTATUS(), PAGED_CODE, _EPROCESS::Pcb, _EPROCESS::PriorityClass, _EJOB::PriorityClass, _EJOB::ProcessMemoryLimit, PsLockPollOnTimeout, PsLockProcess(), PSP_NUMBER_OF_SCHEDULING_CLASSES, PspJobSchedulingClasses, PsProcessPriorityBackground, PsProcessPriorityForeground, PspUseJobSchedulingClasses, PsSetProcessPriorityByClass(), PsUnlockProcess(), _EJOB::SchedulingClass, Status, _ETHREAD::Tcb, _EPROCESS::ThreadListHead, _KPROCESS::ThreadQuantum, TRUE, and _EPROCESS::Vm. Referenced by PspAddProcessToJob(), and PspApplyJobLimitsToProcessSet().
|
|
|
Definition at line 2210 of file psjob.c. References ExAllocatePoolWithTag, ExFreePool(), _EPROCESS::JobStatus, _EJOB::LimitFlags, _JOB_WORKING_SET_CHANGE_HEAD::Links, ObGetObjectPointerCount(), ObReferenceObject, PAGED_CODE, PagedPool, _EJOB::ProcessListHead, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PspApplyJobLimitsToProcess(), and PspWorkingSetChangeHead. Referenced by NtSetInformationJobObject().
|
|
||||||||||||||||
|
Definition at line 2680 of file psjob.c. References ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), Filter, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ProbeForRead, PS_JOB_TOKEN_FILTER, SeCaptureLuidAndAttributesArray(), SeCaptureSidAndAttributesArray(), Status, and TRUE. Referenced by NtSetInformationJobObject().
|
|
||||||||||||
|
Definition at line 608 of file psjob.c. References _EJOB::ActiveProcesses, ExAcquireResourceExclusive, ExReleaseResource, _EJOB::JobLock, _EPROCESS::JobStatus, KeEnterCriticalRegion, KeLeaveCriticalRegion, PAGED_CODE, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_BITS, PspFoldProcessAccountingIntoJob(), and TRUE. Referenced by PspExitThread().
|
|
||||||||||||
|
||||||||||||||||||||||||
|
Definition at line 709 of file psjob.c. References _EJOB::CompletionPort, ExAcquireFastMutexUnsafe(), ExAcquireResourceExclusive, ExReleaseFastMutexUnsafe(), ExReleaseResource, _EJOB::JobLock, KeEnterCriticalRegion, KeLeaveCriticalRegion, _EJOB::MemoryLimitsLock, NULL, ObDereferenceObject, PAGED_CODE, and TRUE. Referenced by PspInitPhase0().
|
|
|
||||||||||||
|
Definition at line 579 of file psjob.c. References _EJOB::ActiveProcesses, ExAcquireResourceExclusive, ExReleaseResource, _EPROCESS::JobLinks, _EJOB::JobLock, _EPROCESS::JobStatus, KeEnterCriticalRegion, KeLeaveCriticalRegion, PAGED_CODE, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_BITS, PspFoldProcessAccountingIntoJob(), and TRUE. Referenced by PspProcessDelete().
|
|
||||||||||||||||
|
Definition at line 2570 of file psjob.c. References _EJOB::ActiveProcesses, FALSE, _EPROCESS::JobStatus, ObDereferenceObject, ObGetObjectPointerCount(), ObReferenceObject, PAGED_CODE, _EJOB::ProcessListHead, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_BITS, PsLockPollOnTimeout, PspFoldProcessAccountingIntoJob(), PspTerminateProcess(), Status, _EJOB::TotalTerminatedProcesses, and TRUE. Referenced by NtTerminateJobObject(), and PsEnforceExecutionTimeLimits().
|
|
|
|
Definition at line 43 of file psjob.c. Referenced by IopCreateObjectTypes(), NtCreateIoCompletion(), NtOpenIoCompletion(), NtQueryIoCompletion(), NtRemoveIoCompletion(), NtSetInformationFile(), NtSetInformationJobObject(), and NtSetIoCompletion(). |
|
|
Initial value:
Definition at line 799 of file psjob.c. Referenced by NtQueryInformationJobObject(), and NtSetInformationJobObject(). |
|
|
Initial value:
Definition at line 767 of file psjob.c. Referenced by NtQueryInformationJobObject(), and NtSetInformationJobObject(). |
1.3.7