diff --git a/libstratosphere/include/stratosphere/pm/pm_dmnt_api.hpp b/libstratosphere/include/stratosphere/pm/pm_dmnt_api.hpp index 7a896ae6..4a5d53fa 100644 --- a/libstratosphere/include/stratosphere/pm/pm_dmnt_api.hpp +++ b/libstratosphere/include/stratosphere/pm/pm_dmnt_api.hpp @@ -28,6 +28,7 @@ namespace ams::pm::dmnt { Result GetProcessId(os::ProcessId *out_process_id, const ncm::ProgramId program_id); Result GetApplicationProcessId(os::ProcessId *out_process_id); Result HookToCreateApplicationProcess(os::NativeHandle *out_handle); + Result HookToCreateProcess(os::NativeHandle *out_handle, const ncm::ProgramId program_id); Result AtmosphereGetProcessInfo(os::NativeHandle *out_handle, ncm::ProgramLocation *out_loc, cfg::OverrideStatus *out_status, os::ProcessId process_id); #if defined(ATMOSPHERE_OS_HORIZON) diff --git a/libstratosphere/source/pm/pm_dmnt_api.cpp b/libstratosphere/source/pm/pm_dmnt_api.cpp index 2eed3765..559e2147 100644 --- a/libstratosphere/source/pm/pm_dmnt_api.cpp +++ b/libstratosphere/source/pm/pm_dmnt_api.cpp @@ -44,6 +44,13 @@ namespace ams::pm::dmnt { R_SUCCEED(); } + Result HookToCreateProcess(os::NativeHandle *out_handle, const ncm::ProgramId program_id) { + Event evt; + R_TRY(pmdmntHookToCreateProcess(std::addressof(evt), static_cast(program_id))); + *out_handle = evt.revent; + R_SUCCEED(); + } + Result AtmosphereGetProcessInfo(os::NativeHandle *out_handle, ncm::ProgramLocation *out_loc, cfg::OverrideStatus *out_status, os::ProcessId process_id) { *out_handle = os::InvalidNativeHandle; *out_loc = {};