RO services: Difference between revisions

fixup ro command names
 
(One intermediate revision by one other user not shown)
Line 12: Line 12:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#LoadModule]]
| 0 || [[#MapManualLoadModuleMemory]]
|-
|-
| 1 || [[#UnloadModule]]
| 1 || [[#UnmapManualLoadModuleMemory]]
|-
|-
| 2 || [[#RegisterModuleInfo]]  
| 2 || [[#RegisterModuleInfo]]  
Line 20: Line 20:
| 3 || [[#UnregisterModuleInfo]]
| 3 || [[#UnregisterModuleInfo]]
|-
|-
| 4 || [[#Initialize]]
| 4 || [[#RegisterProcessHandle]]
|-
|-
| 10 || [7.0.0+] [[#RegisterModuleInfo2]]
| 10 || [7.0.0+] [[#RegisterModuleInfoWithUserProcessHandle]]
|}
|}


== LoadModule ==
== MapManualLoadModuleMemory ==
Takes a PID-descriptor and 4 input u64s ('''nro_address''', '''nro_size''', '''bss_address''' and '''bss_size'''). Returns an output u64 ('''out_address''').
Takes a PID-descriptor and 4 input u64s ('''nro_address''', '''nro_size''', '''bss_address''' and '''bss_size'''). Returns an output u64 ('''out_address''').


== UnloadModule ==
== UnmapManualLoadModuleMemory ==
Takes a PID-descriptor and an input u64 ('''nro_address''').  
Takes a PID-descriptor and an input u64 ('''nro_address''').  


Line 39: Line 39:
Takes a PID-descriptor and an input u64s ('''nrr_address''').  
Takes a PID-descriptor and an input u64s ('''nrr_address''').  


== Initialize ==
== RegisterProcessHandle ==
Takes PID-descriptor and a process handle.
Takes PID-descriptor and a process handle.


== RegisterModuleInfo2 ==
== RegisterModuleInfoWithUserProcessHandle ==
Takes a PID-descriptor, a process handle and 2 input u64s ('''nrr_address''' and '''nrr_size''').  
Takes a PID-descriptor, a process handle 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 LoadNrr, except using the passed process handle instead of the one sent to Initialize.  
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).
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).