#include "psp.h"
Go to the source code of this file.
Functions | |
ULONG | PsSetLegoNotifyRoutine (PLEGO_NOTIFY_ROUTINE LegoNotifyRoutine) |
VOID | PspReaper (IN PVOID Context) |
NTSTATUS | PspTerminateThreadByPointer (IN PETHREAD Thread, IN NTSTATUS ExitStatus) |
NTSTATUS | NtTerminateProcess (IN HANDLE ProcessHandle OPTIONAL, IN NTSTATUS ExitStatus) |
NTSTATUS | PspTerminateProcess (PEPROCESS Process, NTSTATUS Status, PSLOCKPROCESSMODE LockMode) |
NTSTATUS | NtTerminateThread (IN HANDLE ThreadHandle OPTIONAL, IN NTSTATUS ExitStatus) |
NTSTATUS | PsTerminateSystemThread (IN NTSTATUS ExitStatus) |
VOID | PspNullSpecialApc (IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
VOID | PsExitSpecialApc (IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
VOID | PspExitNormalApc (IN PVOID NormalContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
BOOLEAN | PspMarkCidInvalid (IN PHANDLE_TABLE_ENTRY HandleEntry, IN ULONG_PTR Parameter) |
DECLSPEC_NORETURN VOID | PspExitThread (IN NTSTATUS ExitStatus) |
VOID | PspExitProcess (IN BOOLEAN TrimAddressSpace, IN PEPROCESS Process) |
VOID | PspProcessDelete (IN PVOID Object) |
VOID | PspThreadDelete (IN PVOID Object) |
NTSTATUS | NtRegisterThreadTerminatePort (IN HANDLE PortHandle) |
LARGE_INTEGER | PsGetProcessExitTime (VOID) |
BOOLEAN | PsIsThreadTerminating (IN PETHREAD Thread) |
Variables | |
PLEGO_NOTIFY_ROUTINE | PspLegoNotifyRoutine |
|
Definition at line 1472 of file psdelete.c. References ExAllocatePoolWithQuota, EXCEPTION_EXECUTE_HANDLER, _TERMINATION_PORT::Links, LpcPortObjectType, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PagedPool, _TERMINATION_PORT::Port, PortHandle, and PsGetCurrentThread. Referenced by CsrNewThread(), and DbgUiConnectToDbg().
|
|
Definition at line 227 of file psdelete.c. References FALSE, _ETHREAD::HasTerminated, IS_SYSTEM_THREAD, KeForceResumeThread(), KeQuerySystemTime(), KernelMode, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PsGetCurrentProcess, PsGetCurrentThread, PsLockPollOnTimeout, PsLockProcess(), PspExitThread(), PsProcessType, PspTerminateThreadByPointer(), PsUnlockProcess(), _ETHREAD::Tcb, and TRUE. Referenced by _EndTask(), KillProcess(), main(), TestParent(), UdbgTest1(), UdbgTest2(), UserClientShutdown(), and WowExitTask().
|
|
Definition at line 461 of file psdelete.c. References IS_SYSTEM_THREAD, KeForceResumeThread(), KernelMode, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PsGetCurrentProcess, PsGetCurrentThread, PsLockProcess(), PsLockWaitForever, PspTerminateThreadByPointer(), PsThreadType, PsUnlockProcess(), THREAD_TO_PROCESS, ThreadHandle, and TRUE. Referenced by CtLnpQos(), CtLpcQos(), MemPrintWriteThread(), RtlpExitThread(), RtlpQueryProcessDebugInformationRemote(), RtlpThreadCleanup(), RtlQueryProcessDebugInformation(), TestTokenImpersonation(), ThreadThatExcepts(), ThreadThatExits(), ThreadThatSpins(), and UnlockConsole().
|
|
Definition at line 603 of file psdelete.c. References ExFreePool(), NTSTATUS(), PAGED_CODE, and PspExitThread(). Referenced by KiInsertQueueApc(), KiSuspendThread(), PspExitNormalApc(), and PspTerminateThreadByPointer().
|
|
Definition at line 1539 of file psdelete.c. References PAGED_CODE, and PsGetCurrentProcess.
|
|
Definition at line 1578 of file psdelete.c.
|
|
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 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(), _EPROCESS::ExitStatus, _ETHREAD::ExitStatus, _EPROCESS::ExitTime, _ETHREAD::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 679 of file psdelete.c. References TRUE. Referenced by PspExitThread().
|
|
Definition at line 580 of file psdelete.c. References ExFreePool(), NULL, PAGED_CODE, and PsGetCurrentThread. Referenced by PspUserThreadStartup().
|
|
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 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 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 45 of file psdelete.c. References PAGED_CODE, and PspLegoNotifyRoutine.
|
|
Definition at line 546 of file psdelete.c. References _ETHREAD::HasTerminated, IS_SYSTEM_THREAD, PsGetCurrentThread, PspExitThread(), and TRUE. Referenced by SmbTraceThreadEntry(), and xxxDesktopThread().
|
|
Definition at line 42 of file psdelete.c. Referenced by PspExitThread(), and PsSetLegoNotifyRoutine(). |