From 95ec18a1de153bae4adcdf1847d5bdd97f50eb5e Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Thu, 18 Jun 2026 20:34:28 +0200 Subject: [PATCH] Add helper to get currently executing process --- xtoskrnl/includes/ps/process.hh | 1 + xtoskrnl/ps/process.cc | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/xtoskrnl/includes/ps/process.hh b/xtoskrnl/includes/ps/process.hh index 2849316ea..a1ab081d0 100644 --- a/xtoskrnl/includes/ps/process.hh +++ b/xtoskrnl/includes/ps/process.hh @@ -19,6 +19,7 @@ namespace PS { public: STATIC XTAPI XTSTATUS CreateIdleProcess(IN PKPROCESSOR_CONTROL_BLOCK Prcb); + STATIC XTFASTCALL PEPROCESS GetCurrentProcess(VOID); }; } diff --git a/xtoskrnl/ps/process.cc b/xtoskrnl/ps/process.cc index 334404b02..a9f23da89 100644 --- a/xtoskrnl/ps/process.cc +++ b/xtoskrnl/ps/process.cc @@ -49,3 +49,18 @@ PS::Process::CreateIdleProcess(IN PKPROCESSOR_CONTROL_BLOCK Prcb) /* Initialize IDLE thread */ return KE::KThread::InitializeIdleThread(IdleProcess, IdleThread, Prcb, AR::ProcessorSupport::GetBootStack()); } + +/** + * Returns a pointer to the process object associated with the currently executing thread. + * + * @return This routine returns a pointer to the current process object. + * + * @since XT 1.0 + */ +XTFASTCALL +PEPROCESS +PS::Process::GetCurrentProcess(VOID) +{ + /* Return the current process */ + return (PEPROCESS)KE::Processor::GetCurrentThread()->ApcState.Process; +}