RO services: Difference between revisions
Fixed capitalisation |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Prior to 3.0.0, ro was included as part of [[Loader | Prior to 3.0.0, ro was included as part of [[Loader_services|Loader]]. Despite the separation, the service name ldr:ro is retained to maintain compatibility with old games. | ||
= ldr:ro, ro:1 = | = ldr:ro, ro:1 = | ||
Line 6: | Line 6: | ||
[3.0.0+] This is "nn::ro::detail::IRoInterface". | [3.0.0+] This is "nn::ro::detail::IRoInterface". | ||
[7.0.0+] ro:1 was added | [7.0.0+] ro:1 was added and is also "nn::ro::detail::IRoInterface". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 12: | Line 12: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[# | | 0 || [[#MapManualLoadModuleMemory]] | ||
|- | |- | ||
| 1 || | | 1 || [[#UnmapManualLoadModuleMemory]] | ||
|- | |- | ||
| 2 || [[# | | 2 || [[#RegisterModuleInfo]] | ||
|- | |- | ||
| 3 || | | 3 || [[#UnregisterModuleInfo]] | ||
|- | |- | ||
| 4 || [[# | | 4 || [[#RegisterProcessHandle]] | ||
|- | |- | ||
| 10 || [7.0.0+] [[# | | 10 || [7.0.0+] [[#RegisterModuleInfoWithUserProcessHandle]] | ||
|} | |} | ||
== | == MapManualLoadModuleMemory == | ||
Takes a PID-descriptor, an u64 pid_reserved, and 4 input u64s ('''nro_address''', '''nro_size''', '''bss_address''' and '''bss_size'''). Returns an output u64 ('''out_address'''). | |||
== UnmapManualLoadModuleMemory == | |||
Takes a PID-descriptor, an u64 pid_reserved, and an input u64 ('''nro_address'''). | |||
== RegisterModuleInfo == | |||
Takes a PID-descriptor, an u64 pid_reserved, and 2 input u64s ('''nrr_address''' and '''nrr_size'''). | |||
[7.0.0+] [[NRR|NrrKind]] must be 0 (User) for this function to succeed. | |||
== UnregisterModuleInfo == | |||
Takes a PID-descriptor, an u64 pid_reserved, and an input u64 ('''nrr_address'''). | |||
| 0 | |||
== RegisterProcessHandle == | |||
Takes a PID-descriptor, a process handle, and an u64 pid_reserved. | |||
== RegisterModuleInfoWithUserProcessHandle == | |||
Takes a PID-descriptor, a process handle, an u64 pid_reserved, and 2 input u64s ('''nrr_address''' and '''nrr_size'''). | |||
First, this validates that the pid descriptor matches the pid for the process handle sent to this->Initialize() earlier. Then, this calls the same function as [[#RegisterModuleInfo|RegisterModuleInfo]], except using the passed process handle instead of the one sent to Initialize. | |||
| | |||
When called from an ro:1 session, [[NRR|NrrKind]] must be 1 (JitPlugin). When called from ldr:ro session, [[NRR|NrrKind]] must be 0 (User). | |||
[ | |||
= ro:dmnt = | |||
This is "nn::ro::detail::IDebugMonitorInterface". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || [[#GetProcessModuleInfo]] | ||
|} | |} | ||
== | == GetProcessModuleInfo == | ||
Same as [[Loader_services#GetProcessModuleInfo|GetProcessModuleInfo]] from [[Loader_services#ldr:dmnt|ldr:dmnt]]. | |||
[[Category:Services]] | [[Category:Services]] |