RO services: Difference between revisions

Adubbz (talk | contribs)
Fixed capitalisation
 
No edit summary
Line 54: Line 54:


== LoadNrr ==
== LoadNrr ==
[7.0.0+] A new 8-bit field at NRR + 0x33C (previously padding) must be 0 for this function to succeed.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 79: Line 77:
| 4 || Nrr size
| 4 || Nrr size
|}
|}
[7.0.0+] [[NRR|NrrKind]] must be 0 (User) for this function to succeed.


== Initialize ==
== Initialize ==
Line 105: Line 105:
Takes in a u64 nrr_address, a u64 nrr_size, a pid descriptor, and a process handle.  
Takes in a u64 nrr_address, a u64 nrr_size, a pid descriptor, and a process handle.  


First, this validates that the pid descriptor matches the pid for the process handle sent to this->Initialize() earlier.
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.  
 
Then, this calls the same function as LoadNrr, except using the passed process handle instead of the one sent to Initialize.  


When called from an ro:1 session, the field at NRR header + 0x33C must be 0x1. When called from ldr:ro session, the field at NRR header + 0x33C must be 0x0.
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).


[[Category:Services]]
[[Category:Services]]