ps.h
来自「一个类似windows」· C头文件 代码 · 共 380 行
H
380 行
#ifndef __INCLUDE_INTERNAL_PS_H
#define __INCLUDE_INTERNAL_PS_H
/* Forward declarations. */
struct _KTHREAD;
struct _KTRAPFRAME;
struct _EJOB;
#include <internal/arch/ps.h>
extern LCID PsDefaultThreadLocaleId;
extern LCID PsDefaultSystemLocaleId;
extern LIST_ENTRY PspReaperListHead;
extern WORK_QUEUE_ITEM PspReaperWorkItem;
extern BOOLEAN PspReaping;
extern PEPROCESS PsInitialSystemProcess;
extern PEPROCESS PsIdleProcess;
extern LIST_ENTRY PsActiveProcessHead;
extern FAST_MUTEX PspActiveProcessMutex;
extern LARGE_INTEGER ShortPsLockDelay, PsLockTimeout;
extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock;
/* Top level irp definitions. */
#define FSRTL_FSP_TOP_LEVEL_IRP (0x01)
#define FSRTL_CACHE_TOP_LEVEL_IRP (0x02)
#define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03)
#define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04)
#define FSRTL_MAX_TOP_LEVEL_IRP_FLAG (0x04)
#define MAX_PROCESS_NOTIFY_ROUTINE_COUNT 8
#define MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT 8
VOID
NTAPI
PiInitDefaultLocale(VOID);
VOID
NTAPI
PiInitProcessManager(VOID);
VOID
NTAPI
PiShutdownProcessManager(VOID);
VOID
NTAPI
PsInitThreadManagment(VOID);
VOID
NTAPI
PsInitProcessManagment(VOID);
VOID
NTAPI
PsInitIdleThread(VOID);
VOID
NTAPI
PiTerminateProcessThreads(
PEPROCESS Process,
NTSTATUS ExitStatus
);
VOID
NTAPI
PsTerminateCurrentThread(NTSTATUS ExitStatus);
VOID
NTAPI
PsTerminateOtherThread(
PETHREAD Thread,
NTSTATUS ExitStatus
);
VOID
NTAPI
PsReleaseThread(PETHREAD Thread);
VOID
NTAPI
PsBeginThread(
PKSTART_ROUTINE StartRoutine,
PVOID StartContext
);
VOID
NTAPI
PsBeginThreadWithContextInternal(VOID);
VOID
NTAPI
PiKillMostProcesses(VOID);
NTSTATUS
STDCALL
PiTerminateProcess(
PEPROCESS Process,
NTSTATUS ExitStatus
);
VOID
NTAPI
PiInitApcManagement(VOID);
VOID
STDCALL
PiDeleteThread(PVOID ObjectBody);
VOID
NTAPI
PsReapThreads(VOID);
VOID
NTAPI
PsInitializeThreadReaper(VOID);
VOID
NTAPI
PsQueueThreadReap(PETHREAD Thread);
NTSTATUS
NTAPI
PsInitializeThread(
PEPROCESS Process,
PETHREAD* ThreadPtr,
POBJECT_ATTRIBUTES ObjectAttributes,
KPROCESSOR_MODE AccessMode,
BOOLEAN First
);
PACCESS_TOKEN
STDCALL
PsReferenceEffectiveToken(
PETHREAD Thread,
PTOKEN_TYPE TokenType,
PUCHAR b,
PSECURITY_IMPERSONATION_LEVEL Level
);
NTSTATUS
STDCALL
PsOpenTokenOfProcess(
HANDLE ProcessHandle,
PACCESS_TOKEN* Token
);
VOID
STDCALL
PspTerminateProcessThreads(
PEPROCESS Process,
NTSTATUS ExitStatus
);
NTSTATUS
NTAPI
PsSuspendThread(
PETHREAD Thread,
PULONG PreviousCount
);
NTSTATUS
NTAPI
PsResumeThread(
PETHREAD Thread,
PULONG PreviousCount
);
NTSTATUS
STDCALL
PspAssignPrimaryToken(
PEPROCESS Process,
HANDLE TokenHandle
);
VOID
STDCALL
PsExitSpecialApc(
PKAPC Apc,
PKNORMAL_ROUTINE *NormalRoutine,
PVOID *NormalContext,
PVOID *SystemArgument1,
PVOID *SystemArgument2
);
NTSTATUS
STDCALL
PspInitializeProcessSecurity(
PEPROCESS Process,
PEPROCESS Parent OPTIONAL
);
VOID
STDCALL
PspSystemThreadStartup(
PKSTART_ROUTINE StartRoutine,
PVOID StartContext
);
NTSTATUS
NTAPI
PsInitializeIdleOrFirstThread(
PEPROCESS Process,
PETHREAD* ThreadPtr,
PKSTART_ROUTINE StartRoutine,
KPROCESSOR_MODE AccessMode,
BOOLEAN First
);
VOID
STDCALL
PiDeleteProcess(PVOID ObjectBody);
VOID
STDCALL
PspReapRoutine(PVOID Context);
VOID
STDCALL
PspExitThread(NTSTATUS ExitStatus);
VOID
STDCALL
PspTerminateThreadByPointer(
PETHREAD Thread,
NTSTATUS ExitStatus
);
VOID
NTAPI
PsUnfreezeOtherThread(PETHREAD Thread);
VOID
NTAPI
PsFreezeOtherThread(PETHREAD Thread);
VOID
NTAPI
PsFreezeProcessThreads(PEPROCESS Process);
VOID
NTAPI
PsUnfreezeProcessThreads(PEPROCESS Process);
ULONG
NTAPI
PsEnumThreadsByProcess(PEPROCESS Process);
PEPROCESS
STDCALL
PsGetNextProcess(PEPROCESS OldProcess);
VOID
NTAPI
PsApplicationProcessorInit(VOID);
VOID
NTAPI
PsPrepareForApplicationProcessorInit(ULONG Id);
VOID
STDCALL
PsIdleThreadMain(PVOID Context);
VOID
STDCALL
PiSuspendThreadRundownRoutine(PKAPC Apc);
VOID
STDCALL
PiSuspendThreadKernelRoutine(
PKAPC Apc,
PKNORMAL_ROUTINE* NormalRoutine,
PVOID* NormalContext,
PVOID* SystemArgument1,
PVOID* SystemArguemnt2
);
VOID
STDCALL
PiSuspendThreadNormalRoutine(
PVOID NormalContext,
PVOID SystemArgument1,
PVOID SystemArgument2
);
VOID
NTAPI
PsInitialiseSuspendImplementation(VOID);
NTSTATUS
STDCALL
PspExitProcess(PEPROCESS Process);
VOID
STDCALL
PspDeleteProcess(PVOID ObjectBody);
VOID
STDCALL
PspDeleteThread(PVOID ObjectBody);
NTSTATUS
NTAPI
PsInitWin32Thread(PETHREAD Thread);
VOID
NTAPI
PsTerminateWin32Process(PEPROCESS Process);
VOID
NTAPI
PsTerminateWin32Thread(PETHREAD Thread);
VOID
NTAPI
PsInitialiseW32Call(VOID);
VOID
STDCALL
PspRunCreateThreadNotifyRoutines(
PETHREAD,
BOOLEAN
);
VOID
STDCALL
PspRunCreateProcessNotifyRoutines(
PEPROCESS,
BOOLEAN
);
VOID
STDCALL
PspRunLegoRoutine(IN PKTHREAD Thread);
VOID
NTAPI
INIT_FUNCTION
PsInitJobManagment(VOID);
VOID
STDCALL
PspInheritQuota(
PEPROCESS Process,
PEPROCESS ParentProcess
);
VOID
STDCALL
PspDestroyQuotaBlock(PEPROCESS Process);
NTSTATUS
STDCALL
PspMapSystemDll(
PEPROCESS Process,
PVOID *DllBase
);
NTSTATUS
STDCALL
PsLocateSystemDll(VOID);
NTSTATUS
STDCALL
PspGetSystemDllEntryPoints(VOID);
NTSTATUS
NTAPI
PsLockProcess(
PEPROCESS Process,
BOOLEAN Timeout
);
VOID
NTAPI
PsUnlockProcess(PEPROCESS Process);
#endif /* __INCLUDE_INTERNAL_PS_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?