[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).