#include "ntos.h"
#include "ntrtl.h"
#include "nturtl.h"
#include "zwapi.h"
#include "ki.h"
#include "wdbgexts.h"
#include "ntdbg.h"
#include <string.h>
Go to the source code of this file.
Classes | |
struct | _TERMINATION_PORT |
struct | _GETSETCONTEXT |
struct | _SYSTEM_DLL |
struct | _JOB_WORKING_SET_CHANGE_HEAD |
struct | _JOB_WORKING_SET_CHANGE_RECORD |
Defines | |
#define | NOEXTAPI |
#define | PSP_PROCESS_PAGED_CHARGE (PAGE_SIZE) |
#define | PSP_PROCESS_NONPAGED_CHARGE (sizeof(EPROCESS)) |
#define | PSP_THREAD_PAGED_CHARGE (0) |
#define | PSP_THREAD_NONPAGED_CHARGE (sizeof(ETHREAD)) |
#define | PSP_MAX_CREATE_PROCESS_NOTIFY 8 |
#define | PSP_MAX_CREATE_THREAD_NOTIFY 8 |
#define | PSP_MAX_LOAD_IMAGE_NOTIFY 8 |
#define | PSP_NUMBER_OF_SCHEDULING_CLASSES 10 |
#define | PSP_DEFAULT_SCHEDULING_CLASSES 5 |
Typedefs | |
typedef _TERMINATION_PORT | TERMINATION_PORT |
typedef _TERMINATION_PORT * | PTERMINATION_PORT |
typedef _GETSETCONTEXT | GETSETCONTEXT |
typedef _GETSETCONTEXT * | PGETSETCONTEXT |
typedef _SYSTEM_DLL | SYSTEM_DLL |
typedef _SYSTEM_DLL | PSYSTEM_DLL |
typedef _JOB_WORKING_SET_CHANGE_HEAD | JOB_WORKING_SET_CHANGE_HEAD |
typedef _JOB_WORKING_SET_CHANGE_HEAD * | PJOB_WORKING_SET_CHANGE_HEAD |
typedef _JOB_WORKING_SET_CHANGE_RECORD | JOB_WORKING_SET_CHANGE_RECORD |
typedef _JOB_WORKING_SET_CHANGE_RECORD * | PJOB_WORKING_SET_CHANGE_RECORD |
Functions | |
VOID | PspProcessDump (IN PVOID Object, IN POB_DUMP_CONTROL Control OPTIONAL) |
VOID | PspProcessDelete (IN PVOID Object) |
VOID | PspThreadDump (IN PVOID Object, IN POB_DUMP_CONTROL Control OPTIONAL) |
VOID | PspInheritQuota (IN PEPROCESS NewProcess, IN PEPROCESS ParentProcess) |
VOID | PspDereferenceQuota (IN PEPROCESS Process) |
VOID | PspThreadDelete (IN PVOID Object) |
BOOLEAN | PspInitPhase0 (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
BOOLEAN | PspInitPhase1 (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
NTSTATUS | PspInitializeSystemDll (VOID) |
NTSTATUS | PspLookupSystemDllEntryPoint (IN PSZ EntryPointName, OUT PVOID *EntryPointAddress) |
NTSTATUS | PspLookupKernelUserEntryPoints (VOID) |
USHORT | PspNameToOrdinal (IN PSZ EntryPointName, IN ULONG DllBase, IN ULONG NumberOfNames, IN PULONG NameTableBase, IN PUSHORT OrdinalTableBase) |
NTSTATUS | PspMapSystemDll (IN PEPROCESS Process, OUT PVOID *DllBase OPTIONAL) |
NTSTATUS | PspCreateProcess (OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ParentProcess OPTIONAL, IN BOOLEAN InheritObjectTable, IN HANDLE SectionHandle OPTIONAL, IN HANDLE DebugPort OPTIONAL, IN HANDLE ExceptionPort OPTIONAL) |
NTSTATUS | PspCreateThread (OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle, IN PEPROCESS ProcessPointer, OUT PCLIENT_ID ClientId OPTIONAL, IN PCONTEXT ThreadContext OPTIONAL, IN PINITIAL_TEB InitialTeb OPTIONAL, IN BOOLEAN CreateSuspended, IN PKSTART_ROUTINE StartRoutine OPTIONAL, IN PVOID StartContext) |
VOID | PspUserThreadStartup (IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext) |
VOID | PspSystemThreadStartup (IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext) |
VOID | PspReaper (IN PVOID StartContext) |
VOID | PspNullSpecialApc (IN PKAPC Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2) |
DECLSPEC_NORETURN VOID | PspExitThread (IN NTSTATUS ExitStatus) |
NTSTATUS | PspTerminateThreadByPointer (IN PETHREAD Thread, IN NTSTATUS ExitStatus) |
VOID | PspExitSpecialApc (IN PKAPC Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2) |
VOID | PspExitProcess (IN BOOLEAN TrimAddressSpace, IN PEPROCESS Process) |
VOID | PspSetContext (OUT PKTRAP_FRAME TrapFrame, OUT PKNONVOLATILE_CONTEXT_POINTERS NonVolatileContext, IN PCONTEXT Context, KPROCESSOR_MODE Mode) |
VOID | PspGetContext (IN PKTRAP_FRAME TrapFrame, IN PKNONVOLATILE_CONTEXT_POINTERS NonVolatileContext, IN OUT PCONTEXT Context) |
VOID | PspGetSetContextSpecialApc (IN PKAPC Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2) |
VOID | PspExitNormalApc (IN PVOID NormalContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
NTSTATUS | PspInitializeProcessSecurity (IN PEPROCESS Parent OPTIONAL, IN PEPROCESS Child) |
VOID | PspDeleteProcessSecurity (IN PEPROCESS Process) |
VOID | PspInitializeThreadSecurity (IN PEPROCESS Process, IN PETHREAD Thread) |
VOID | PspDeleteThreadSecurity (IN PETHREAD Thread) |
NTSTATUS | PspAssignPrimaryToken (IN PEPROCESS Process, IN HANDLE Token OPTIONAL, IN PACCESS_TOKEN TokenPointer OPTIONAL) |
NTSTATUS | PspSetPrimaryToken (IN HANDLE ProcessHandle, IN HANDLE TokenHandle OPTIONAL, IN PACCESS_TOKEN TokenPointer OPTIONAL) |
NTSTATUS | PspQueryLdtInformation (IN PEPROCESS Process, OUT PVOID LdtInformation, IN ULONG LdtInformationLength, OUT PULONG ReturnLength) |
NTSTATUS | PspSetLdtInformation (IN PEPROCESS Process, IN PVOID LdtInformation, IN ULONG LdtInformationLength) |
NTSTATUS | PspSetLdtSize (IN PEPROCESS Process, IN PVOID LdtSize, IN ULONG LdtSizeLength) |
VOID | PspDeleteLdt (IN PEPROCESS Process) |
NTSTATUS | PspSetProcessIoHandlers (IN PEPROCESS Process, IN PVOID IoHandlerInformation, IN ULONG IoHandlerLength) |
VOID | PspDeleteVdmObjects (IN PEPROCESS Process) |
NTSTATUS | PspQueryDescriptorThread (PETHREAD Thread, PVOID ThreadInformation, ULONG ThreadInformationLength, PULONG ReturnLength) |
VOID | PspJobDelete (IN PVOID Object) |
VOID | PspJobClose (IN PEPROCESS Process, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount) |
NTSTATUS | PspAddProcessToJob (PEJOB Job, PEPROCESS Process) |
VOID | PspRemoveProcessFromJob (PEJOB Job, PEPROCESS Process) |
VOID | PspExitProcessFromJob (PEJOB Job, PEPROCESS Process) |
NTSTATUS | PspTerminateProcess (PEPROCESS Process, NTSTATUS Status, PSLOCKPROCESSMODE LockMode) |
VOID | PspApplyJobLimitsToProcessSet (PEJOB Job) |
VOID | PspApplyJobLimitsToProcess (PEJOB Job, PEPROCESS Process) |
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) |
Variables | |
JOB_WORKING_SET_CHANGE_HEAD | PspWorkingSetChangeHead |
ULONG | PspCreateProcessNotifyRoutineCount |
PCREATE_PROCESS_NOTIFY_ROUTINE | PspCreateProcessNotifyRoutine [PSP_MAX_CREATE_PROCESS_NOTIFY] |
ULONG | PspCreateThreadNotifyRoutineCount |
PCREATE_THREAD_NOTIFY_ROUTINE | PspCreateThreadNotifyRoutine [PSP_MAX_CREATE_THREAD_NOTIFY] |
ULONG | PspLoadImageNotifyRoutineCount |
PLOAD_IMAGE_NOTIFY_ROUTINE | PspLoadImageNotifyRoutine [PSP_MAX_LOAD_IMAGE_NOTIFY] |
PHANDLE_TABLE | PspCidTable |
HANDLE | PspInitialSystemProcessHandle |
PACCESS_TOKEN | PspBootAccessToken |
KSPIN_LOCK | PspEventPairLock |
SYSTEM_DLL | PspSystemDll |
FAST_MUTEX | PspActiveProcessMutex |
FAST_MUTEX | PspProcessLockMutex |
ULONG | PspDefaultPagedLimit |
ULONG | PspDefaultNonPagedLimit |
ULONG | PspDefaultPagefileLimit |
EPROCESS_QUOTA_BLOCK | PspDefaultQuotaBlock |
BOOLEAN | PspDoingGiveBacks |
PKWIN32_PROCESS_CALLOUT | PspW32ProcessCallout |
PKWIN32_THREAD_CALLOUT | PspW32ThreadCallout |
PKWIN32_JOB_CALLOUT | PspW32JobCallout |
ULONG | PspW32ProcessSize |
ULONG | PspW32ThreadSize |
SCHAR | PspForegroundQuantum [3] |
SCHAR | PspJobSchedulingClasses [PSP_NUMBER_OF_SCHEDULING_CLASSES] |
BOOLEAN | PspUseJobSchedulingClasses |
FAST_MUTEX | PspJobListLock |
LIST_ENTRY | PspJobList |
|
|
|
Definition at line 543 of file psp.h. Referenced by NtCreateJobObject(), and NtSetInformationJobObject(). |
|
Definition at line 189 of file psp.h. Referenced by PspCreateThread(), PspExitProcess(), and PsSetCreateProcessNotifyRoutine(). |
|
Definition at line 206 of file psp.h. Referenced by PspCreateThread(), PspExitThread(), and PsSetCreateThreadNotifyRoutine(). |
|
Definition at line 212 of file psp.h. Referenced by PsCallImageNotifyRoutines(), and PsSetLoadImageNotifyRoutine(). |
|
Definition at line 542 of file psp.h. Referenced by NtSetInformationJobObject(), and PspApplyJobLimitsToProcess(). |
|
Definition at line 56 of file psp.h. Referenced by PspInitPhase0(). |
|
Definition at line 55 of file psp.h. Referenced by PspInitPhase0(). |
|
Definition at line 69 of file psp.h. Referenced by PspInitPhase0(). |
|
Definition at line 68 of file psp.h. Referenced by PspInitPhase0(). |
|
Referenced by NtGetContextThread(). |
|
|
|
Referenced by NtSetInformationJobObject(). |
|
Referenced by PspGetSetContextSpecialApc(). |
|
|
|
Referenced by NtSetInformationJobObject(). |
|
|
|
Referenced by PspExitThread(). |
|
|
|
Referenced by PspExitThread(). |
|
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 _EJOB::Affinity, _KPROCESS::Affinity, _EPROCESS::CommitChargeLimit, ExAcquireFastMutexUnsafe(), ExReleaseFastMutexUnsafe(), FALSE, KeSetAffinityThread(), KeSetDisableQuantumProcess(), _EJOB::LimitFlags, MEMORY_PRIORITY_FOREGROUND, _EJOB::MemoryLimitsLock, _MMSUPPORT::MemoryPriority, MmEnforceWorkingSetLimit(), NTSTATUS(), PAGED_CODE, _EPROCESS::Pcb, _EJOB::PriorityClass, _EPROCESS::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 1256 of file ps/security.c. References KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PsFreeProcessSecurityFields, PsLockProcessSecurityFields, SeExchangePrimaryToken(), SeTokenObjectType, Status, and Token. Referenced by PspSetPrimaryToken().
|
|
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 969 of file ps/create.c. References ASSERT, _SECURITY_SUBJECT_CONTEXT::ClientToken, DebugPort, _EPROCESS::DefaultHardErrorProcessing, EPROCESS, EXCEPTION_EXECUTE_HANDLER, ExInitializeFastMutex, FALSE, _OBJECT_TYPE_INITIALIZER::GenericMapping, _INITIAL_PEB::InheritedAddressSpace, INITIAL_PEB, _EPROCESS::Job, KeActiveProcessors, KeAttachProcess(), KeDetachProcess(), KeInitializeEvent, KeInitializeProcess(), KeInitializeSpinLock(), KeQuerySystemTime(), KPROCESSOR_MODE, L, _EJOB::LimitFlags, LpcPortObjectType, MmCreatePeb(), MmCreateProcessAddressSpace(), MmInitializeProcessAddressSpace(), MmSectionObjectType, MmWorkingSetList, _INITIAL_PEB::Mutant, NT_SUCCESS, NTSTATUS(), NULL, ObCreateObject(), ObDereferenceObject, ObGetObjectSecurity(), ObInheritDeviceMap(), ObInitProcess(), ObInitProcess2(), ObInsertObject(), ObjectAttributes, ObKillProcess(), ObReferenceObject, ObReferenceObjectByHandle(), ObReleaseObjectSecurity(), PAGED_CODE, _EPROCESS::Peb, _SECURITY_SUBJECT_CONTEXT::PrimaryToken, _EPROCESS::PriorityClass, _SECURITY_SUBJECT_CONTEXT::ProcessAuditId, PsActiveProcessHead, PsDereferencePrimaryToken, PsGetCurrentProcess, PsInitialSystemProcess, PsMaximumWorkingSet, PsMinimumWorkingSet, PspActiveProcessMutex, PspAddProcessToJob(), PspDeleteProcessSecurity(), PspForegroundQuantum, PspInheritQuota(), PspInitializeProcessSecurity(), PspInitialSystemProcessHandle, PspMapSystemDll(), PsProcessPriorityBackground, PsProcessType, PsReferencePrimaryToken(), PsSetProcessPriorityByClass(), SeAccessCheck(), SeAuditProcessCreation(), _EPROCESS::SectionBaseAddress, _EPROCESS::SectionHandle, SeDetailedAuditing, _EPROCESS::SessionId, TRUE, _OBJECT_TYPE::TypeInfo, and _EPROCESS::UniqueProcessId. Referenced by NtCreateProcess(), PsCreateSystemProcess(), and PspInitPhase0().
|
|
Definition at line 262 of file ps/create.c. References ASSERT, _SECURITY_SUBJECT_CONTEXT::ClientToken, _EJOB::CompletionKey, _EJOB::CompletionPort, DbgPrint, ETHREAD, EXCEPTION_EXECUTE_HANDLER, ExChangeHandle(), ExCreateHandle(), ExSetHandleTableOwner, FALSE, _OBJECT_TYPE_INITIALIZER::GenericMapping, _HANDLE_TABLE_ENTRY::GrantedAccess, InitialTeb, IoSetIoCompletion(), _EPROCESS::Job, _EPROCESS::JobStatus, KeEnableApcQueuingThread(), KeInitializeSemaphore(), KeInitializeSpinLock(), KeInitializeThread(), KeQuerySystemTime(), KeReadyThread(), KeResumeThread(), KernelMode, KeSuspendThread(), KPROCESSOR_MODE, L, _EJOB::MemoryLimitsLock, MmCreateKernelStack(), MmCreateTeb(), MmDeleteKernelStack(), MmDeleteTeb(), MmReadClusterSize, NT_SUCCESS, NTSTATUS(), NULL, ObCreateObject(), ObDereferenceObject, ObGetObjectSecurity(), ObInsertObject(), _HANDLE_TABLE_ENTRY::Object, ObjectAttributes, _EPROCESS::ObjectTable, ObReferenceObject, ObReferenceObjectByHandle(), ObReleaseObjectSecurity(), PAGED_CODE, _EPROCESS::Pcb, PERFINFO_PROCESS_CREATE, PERFINFO_THREAD_CREATE, PKSTART_ROUTINE, _SECURITY_SUBJECT_CONTEXT::PrimaryToken, _SECURITY_SUBJECT_CONTEXT::ProcessAuditId, PS_JOB_STATUS_NEW_PROCESS_REPORTED, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_BITS, PS_SET_THREAD_CREATE_TIME, PsDereferencePrimaryToken, PsGetCurrentThread, PsInitialSystemProcess, PsLockPollOnTimeout, PsLockProcess(), PSP_INVALID_ID, PSP_MAX_CREATE_PROCESS_NOTIFY, PSP_MAX_CREATE_THREAD_NOTIFY, PspCidTable, PspCreateProcessNotifyRoutine, PspCreateProcessNotifyRoutineCount, PspCreateThreadNotifyRoutine, PspCreateThreadNotifyRoutineCount, PspInitializeThreadSecurity(), PspMarkProcessIdValid(), PsProcessType, PspSystemThreadStartup(), PspUserThreadStartup(), PsReferencePrimaryToken(), PsThreadType, PsUnlockProcess(), SeAccessCheck(), ThreadContext, ThreadHandle, _EPROCESS::ThreadListHead, TRUE, _OBJECT_TYPE::TypeInfo, _EPROCESS::UniqueProcessId, and VOID(). Referenced by NtCreateThread(), and PsCreateSystemThread().
|
|
Definition at line 140 of file alpha/psldt.c. Referenced by PspProcessDelete().
|
|
Definition at line 1206 of file ps/security.c. References NULL, and SeDeassignPrimaryToken(). Referenced by PspCreateProcess(), and PspProcessDelete().
|
|
Definition at line 1436 of file ps/security.c. References ExFreePool(), FALSE, NULL, and ObDereferenceObject. Referenced by PspThreadDelete().
|
|
Definition at line 58 of file alpha/psvdm.c. Referenced by PspProcessDelete().
|
|
Definition at line 494 of file psquota.c. References ExFreePool(), MiReturnPageFileQuota(), NonPagedPool, PagedPool, PsReturnPoolQuota(), _EPROCESS_QUOTA_BLOCK::QuotaLock, and _EPROCESS_QUOTA_BLOCK::ReferenceCount. Referenced by PspProcessDelete().
|
|
Definition at line 631 of file psdelete.c. References ExFreePool(), IS_SYSTEM_THREAD, KeBugCheck(), KeForceResumeThread(), KeInitializeApc(), KeInsertQueueApc(), _KAPC::NormalContext, NTSTATUS(), NULL, OriginalApcEnvironment, PAGED_CODE, PsExitSpecialApc(), PsGetCurrentThread, PspExitNormalApc(), PspExitThread(), _ETHREAD::Tcb, and UserMode. Referenced by PspExitNormalApc(), and PspTerminateThreadByPointer().
|
|
Definition at line 1232 of file psdelete.c. References FALSE, IoSetIoCompletion(), KeMaximumIncrement, KeSetProcess(), MmCleanProcessAddressSpace(), NULL, ObDereferenceObject, ObKillProcess(), PAGED_CODE, PoRundownProcess, PS_JOB_STATUS_EXIT_PROCESS_REPORTED, PS_JOB_STATUS_LAST_REPORT_MEMORY, PS_JOB_STATUS_NOT_REALLY_ACTIVE, PS_SET_CLEAR_BITS, PSP_MAX_CREATE_PROCESS_NOTIFY, PspActiveProcessMutex, PspCreateProcessNotifyRoutine, PspCreateProcessNotifyRoutineCount, and TRUE. Referenced by PspExitThread(), and PspProcessDelete().
|
|
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 690 of file psdelete.c. References _KTHREAD::ApcState, _KTHREAD::ApcStateIndex, ASSERT, _ETHREAD::Cid, CmNotifyRunDown(), DbgkExitProcess(), DbgkExitThread(), _ETHREAD::DeadThread, _KTHREAD::EnableStackSwap, EXCEPTION_EXECUTE_HANDLER, ExChangeHandle(), ExFreePool(), _ETHREAD::ExitStatus, _EPROCESS::ExitStatus, _ETHREAD::ExitTime, _EPROCESS::ExitTime, ExTimerRundown(), FALSE, IoCancelThreadIo(), IS_SYSTEM_THREAD, _EPROCESS::Job, KeBugCheck(), KeBugCheckEx(), KeDisableApcQueuingThread(), KeEnterCriticalRegion, KeFlushQueueApc(), KeForceResumeThread(), KeIsAttachedProcess, KeLeaveCriticalRegion, KeLowerIrql(), KeQuerySystemTime(), _KTHREAD::KernelApcDisable, KernelMode, KeRundownThread(), KeSetPriorityThread(), KeSetProcess(), KeTerminateThread(), L, _EPROCESS::LastThreadExitStatus, _KTHREAD::LegoData, LpcExitThread(), LpcRequestPort(), MmCleanProcessAddressSpace(), MmDeleteTeb(), NtSetEvent(), NULL, ObDereferenceObject, ObKillProcess(), PAGE_SIZE, PAGED_CODE, PASSIVE_LEVEL, _EPROCESS::Pcb, _EPROCESS::Peb, _TERMINATION_PORT::Port, PoRundownThread, _KTHREAD::Priority, ProbeForRead, _KAPC_STATE::Process, PS_GET_THREAD_CREATE_TIME, PsGetCurrentProcess, PsGetCurrentThread, PsLockIAmExiting, PsLockProcess(), PSP_INVALID_ID, PSP_MAX_CREATE_THREAD_NOTIFY, PspCidTable, PspCreateThreadNotifyRoutine, PspCreateThreadNotifyRoutineCount, PspExitProcess(), PspExitProcessFromJob(), PspLegoNotifyRoutine, PspMarkCidInvalid(), PspW32ProcessCallout, PspW32ThreadCallout, PsUnlockProcess(), PsW32ThreadCalloutExit, PTERMINATION_PORT, _KAPC::RundownRoutine, _ETHREAD::Tcb, _KTHREAD::Teb, TERMINATION_PORT, _ETHREAD::TerminationPortList, THREAD_TO_PROCESS, _ETHREAD::ThreadListEntry, _EPROCESS::ThreadListHead, TRUE, _EPROCESS::UniqueProcessId, UserMode, VOID(), _EPROCESS::Win32Process, _KTHREAD::Win32Thread, _WOW64_PROCESS::Wow64, and _EPROCESS::Wow64Process. Referenced by NtTerminateProcess(), PsExitSpecialApc(), PspExitNormalApc(), PspSystemThreadStartup(), PspTerminateThreadByPointer(), PspUserThreadStartup(), and PsTerminateSystemThread().
|
|
|
Definition at line 29 of file psctxalp.c. References ASSERT, CONTEXT_CONTROL, CONTEXT_FLOATING_POINT, CONTEXT_INTEGER, EXCEPTION_EXECUTE_HANDLER, KeGetCurrentThread, KernelMode, and KiBreakPoints. Referenced by PspGetSetContextApc(), PspGetSetContextSpecialApc(), and PspGetSetContextSpecialApcMain().
|
|
Referenced by NtGetContextThread(), and NtSetContextThread(). |
|
Definition at line 466 of file psquota.c. References PspDefaultQuotaBlock, _EPROCESS_QUOTA_BLOCK::QuotaLock, and _EPROCESS_QUOTA_BLOCK::ReferenceCount. Referenced by PspCreateProcess().
|
|
Definition at line 1117 of file ps/security.c. References NT_SUCCESS, NTSTATUS(), NULL, PspBootAccessToken, SeAssignPrimaryToken(), SeSubProcessToken(), and Status. Referenced by PspCreateProcess().
|
|
Definition at line 745 of file psinit.c. References DbgPrint, KdUpdateDataBlock(), KeBugCheckEx(), KeSetup80387OrEmulate(), _SYSTEM_DLL::LoaderInitRoutine, NT_SUCCESS, NTSTATUS(), PspLookupKernelUserEntryPoints(), PspLookupSystemDllEntryPoint(), and PspSystemDll. Referenced by PspInitPhase1().
|
|
Definition at line 1395 of file ps/security.c. Referenced by PspCreateThread().
|
|
Definition at line 181 of file psinit.c. References ExCreateHandleTable(), ExInitializeFastMutex, ExInitializeWorkItem, ExRemoveHandleTable(), FALSE, _EPROCESS::ImageFileName, KeBugCheckEx(), KernelMode, _KPROCESS::KernelTime, L, _JOB_WORKING_SET_CHANGE_HEAD::Links, _JOB_WORKING_SET_CHANGE_HEAD::Lock, MM_SYSTEMSIZE, MmLargeSystem, MmMediumSystem, MmQuerySystemSize(), MmSmallSystem, NonPagedPool, NT_SUCCESS, NULL, ObCreateObjectType(), ObjectAttributes, ObReferenceObjectByHandle(), _EPROCESS::Pcb, Phase1Initialization(), PsActiveProcessHead, PsChangeQuantumTable(), PsCreateSystemThread(), PsGetCurrentProcess, PsIdleProcess, PsInitialSystemProcess, PsJobType, PsMaximumWorkingSet, PsMinimumWorkingSet, PSP_1MB, PSP_PROCESS_NONPAGED_CHARGE, PSP_PROCESS_PAGED_CHARGE, PSP_THREAD_NONPAGED_CHARGE, PSP_THREAD_PAGED_CHARGE, PspActiveProcessMutex, PspBootAccessToken, PspCidTable, PspCreateProcess(), PspDefaultNonPagedLimit, PspDefaultPagedLimit, PspDefaultPagefileLimit, PspDoingGiveBacks, PspInitialSystemProcessHandle, PspJobClose(), PspJobDelete(), PspJobList, PspJobListLock, PspJobMapping, PspLdtInitialize(), PspProcessDelete(), PspProcessLockMutex, PspProcessMapping, PspReaper(), PsProcessSecurityLock, PsProcessType, PspThreadDelete(), PspThreadMapping, PspVdmInitialize(), PspWorkingSetChangeHead, PsRawPrioritySeparation, PsReaperListHead, PsReaperWorkItem, PsThreadType, RtlInitUnicodeString(), ThreadHandle, and TRUE. Referenced by PsInitSystem().
|
|
Definition at line 487 of file psinit.c. References FALSE, NT_SUCCESS, NTSTATUS(), PspInitializeSystemDll(), and TRUE. Referenced by PsInitSystem().
|
|
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 25 of file kulokup2.c. References FALSE, KeRaiseUserExceptionDispatcher, KeUserApcDispatcher, KeUserCallbackDispatcher, KeUserExceptionDispatcher, NT_SUCCESS, NTSTATUS(), PspLookupSystemDllEntryPoint(), and Status. Referenced by PspInitializeSystemDll().
|
|
Definition at line 827 of file psinit.c. References _SYSTEM_DLL::DllBase, LookupEntryPoint(), and PspSystemDll. Referenced by PspInitializeSystemDll(), and PspLookupKernelUserEntryPoints().
|
|
Definition at line 679 of file psinit.c. References DbgPrint, L, MmMapViewOfSection(), NTSTATUS(), NULL, PAGED_CODE, PspSystemDll, and _SYSTEM_DLL::Section. Referenced by PsLocateSystemDll(), and PspCreateProcess().
|
|
|
|
|
|
Definition at line 1363 of file psdelete.c. References _KPROCESS::DirectoryTableBase, ExDestroyHandle(), ExFreePool(), FALSE, _EPROCESS::Job, KeBugCheck(), KeStackAttachProcess(), KeTerminateProcess, KeUnstackDetachProcess(), MmDeleteProcessAddressSpace(), NULL, ObDereferenceDeviceMap(), ObDereferenceObject, PAGED_CODE, PERFINFO_PROCESS_DELETE, PspCidTable, PspDeleteLdt(), PspDeleteProcessSecurity(), PspDeleteVdmObjects(), PspDereferenceQuota(), PspExitProcess(), PspRemoveProcessFromJob(), SeAuditProcessExit(), SeDetailedAuditing, and _EPROCESS::Token. Referenced by PspInitPhase0().
|
|
|
|
Definition at line 112 of file alpha/psldt.c. Referenced by NtQueryInformationThread().
|
|
Definition at line 25 of file alpha/psldt.c. Referenced by NtQueryInformationProcess().
|
|
Definition at line 57 of file psdelete.c. References FALSE, _KTHREAD::InitialStack, KiLockContextSwap, KiLockDispatcherDatabase, KiUnlockContextSwap, KiUnlockDispatcherDatabase(), _KTHREAD::LargeStack, MmDeleteKernelStack(), NULL, ObDereferenceObject, PsReaperActive, PsReaperListHead, _KTHREAD::StackBase, _ETHREAD::Tcb, and THREAD_TO_PROCESS. 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 88 of file psctx386.c. References ASSERT, KeContextToKframes(), KernelMode, NULL, and PAGED_CODE. Referenced by PspGetSetContextApc(), PspGetSetContextSpecialApc(), and PspGetSetContextSpecialApcMain().
|
|
Definition at line 81 of file alpha/psldt.c. Referenced by NtSetInformationProcess().
|
|
Definition at line 53 of file alpha/psldt.c. Referenced by NtSetInformationProcess().
|
|
Definition at line 366 of file psquery.c. References _SECURITY_SUBJECT_CONTEXT::ClientToken, FALSE, _OBJECT_TYPE_INITIALIZER::GenericMapping, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObGetObjectSecurity(), ObReferenceObjectByHandle(), ObReleaseObjectSecurity(), _SECURITY_SUBJECT_CONTEXT::PrimaryToken, _SECURITY_SUBJECT_CONTEXT::ProcessAuditId, PsDereferencePrimaryToken, PspAssignPrimaryToken(), PsProcessType, PsReferencePrimaryToken(), SeAccessCheck(), SeAssignPrimaryTokenPrivilege, SeCheckPrivilegedObject(), SeIsChildTokenByPointer(), SeTokenObjectType, and _OBJECT_TYPE::TypeInfo. Referenced by NtAssignProcessToJobObject(), and NtSetInformationProcess().
|
|
Definition at line 25 of file alpha/psvdm.c.
|
|
Definition at line 1920 of file ps/create.c. References _ETHREAD::DeadThread, _ETHREAD::HasTerminated, KeBugCheck(), KeLowerIrql(), KMODE_EXCEPTION_NOT_HANDLED, MmAllowWorkingSetExpansion(), PsGetCurrentThread, PspExitThread(), and PspUnhandledExceptionInSystemThread(). Referenced by PspCreateThread().
|
|
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 384 of file psdelete.c. References _ETHREAD::HasTerminated, IS_SYSTEM_THREAD, KeForceResumeThread(), KernelMode, NTSTATUS(), ObDereferenceObject, PAGED_CODE, PsGetCurrentProcess, PsLockProcess(), PspTerminateThreadByPointer(), PsUnlockProcess(), Status, _ETHREAD::Tcb, _EPROCESS::ThreadListHead, and TRUE. Referenced by NtAssignProcessToJobObject(), PsEnforceExecutionTimeLimits(), and PspTerminateAllProcessesInJob().
|
|
Definition at line 160 of file psdelete.c. References ExAllocatePool, ExFreePool(), KeInitializeApc(), KeInsertQueueApc(), KernelMode, NonPagedPool, NULL, ObDereferenceObject, OriginalApcEnvironment, PAGED_CODE, PsExitSpecialApc(), PsGetCurrentThread, PspExitNormalApc(), and PspExitThread(). Referenced by NtTerminateProcess(), NtTerminateThread(), and PspTerminateProcess().
|
|
Definition at line 1438 of file psdelete.c. References ASSERT, _ETHREAD::Cid, ExDestroyHandle(), _KTHREAD::InitialStack, KeBugCheck(), _KTHREAD::LargeStack, MmDeleteKernelStack(), NULL, ObDereferenceObject, PAGED_CODE, PERFINFO_THREAD_DELETE, PspCidTable, PspDeleteThreadSecurity(), _ETHREAD::Tcb, THREAD_TO_PROCESS, and _KTHREAD::Win32Thread. Referenced by PspInitPhase0().
|
|
|
|
Definition at line 1800 of file ps/create.c. References _KTHREAD::ApcState, DbgkCreateThread(), _ETHREAD::DeadThread, _SYSTEM_DLL::DllBase, ExAllocatePool, ExFreePool(), _ETHREAD::HasTerminated, KeInitializeApc(), KeInsertQueueApc(), KeLowerIrql(), _SYSTEM_DLL::LoaderInitRoutine, MmAllowWorkingSetExpansion(), NonPagedPoolMustSucceed, NULL, OriginalApcEnvironment, PAGED_CODE, _EPROCESS::Pcb, PsDefaultThreadLocaleId, PsGetCurrentProcess, PsGetCurrentThread, PspExitThread(), PspNullSpecialApc(), PspSystemDll, _ETHREAD::Tcb, TRUE, _KAPC_STATE::UserApcPending, UserMode, and _KPROCESS::UserTime. Referenced by PspCreateThread().
|
|
|
|
Definition at line 521 of file psp.h. Referenced by PspInitializeProcessSecurity(), and PspInitPhase0(). |
|
|
|
Definition at line 192 of file psp.h. Referenced by PspCreateThread(), PspExitProcess(), and PsSetCreateProcessNotifyRoutine(). |
|
Definition at line 191 of file psp.h. Referenced by PspCreateThread(), PspExitProcess(), and PsSetCreateProcessNotifyRoutine(). |
|
Definition at line 209 of file psp.h. Referenced by PspCreateThread(), PspExitThread(), and PsSetCreateThreadNotifyRoutine(). |
|
Definition at line 208 of file psp.h. Referenced by PspCreateThread(), PspExitThread(), and PsSetCreateThreadNotifyRoutine(). |
|
|
|
|
|
|
|
|
|
Definition at line 532 of file psp.h. Referenced by PspInitPhase0(), and PsReturnPoolQuota(). |
|
|
|
Definition at line 539 of file psp.h. Referenced by PsChangeQuantumTable(), PspCreateProcess(), and PsSetProcessPriorityByClass(). |
|
|
|
Definition at line 549 of file psp.h. Referenced by NtCreateJobObject(), PsEnforceExecutionTimeLimits(), and PspInitPhase0(). |
|
Definition at line 548 of file psp.h. Referenced by NtCreateJobObject(), PsEnforceExecutionTimeLimits(), PspInitPhase0(), and PspJobDelete(). |
|
Definition at line 545 of file psp.h. Referenced by PsChangeQuantumTable(), PspApplyJobLimitsToProcess(), and PsSetProcessPriorityByClass(). |
|
Definition at line 214 of file psp.h. Referenced by PsCallImageNotifyRoutines(), and PsSetLoadImageNotifyRoutine(). |
|
Definition at line 213 of file psp.h. Referenced by PsSetLoadImageNotifyRoutine(). |
|
Definition at line 525 of file psp.h. Referenced by PsLockProcess(), PspInitPhase0(), and PsUnlockProcess(). |
|
Definition at line 523 of file psp.h. Referenced by PsLocateSystemDll(), PspInitializeSystemDll(), PspLookupSystemDllEntryPoint(), PspMapSystemDll(), and PspUserThreadStartup(). |
|
Definition at line 546 of file psp.h. Referenced by PsChangeQuantumTable(), PspApplyJobLimitsToProcess(), and PsSetProcessPriorityByClass(). |
|
Definition at line 536 of file psp.h. Referenced by NtAssignProcessToJobObject(), NtSetInformationJobObject(), PsEstablishWin32Callouts(), and PspJobDelete(). |
|
Definition at line 534 of file psp.h. Referenced by PsConvertToGuiThread(), PsEstablishWin32Callouts(), and PspExitThread(). |
|
|
|
Definition at line 535 of file psp.h. Referenced by PsConvertToGuiThread(), PsEstablishWin32Callouts(), and PspExitThread(). |
|
|
|
Definition at line 102 of file psp.h. Referenced by NtSetInformationJobObject(), PspAddProcessToJob(), PspApplyJobLimitsToProcessSet(), and PspInitPhase0(). |