Line 19: |
Line 19: |
| == FlushArguments == | | == FlushArguments == |
| Clears the loaded processes waiting queue. | | Clears the loaded processes waiting queue. |
− |
| |
| | | |
| = ldr:dmnt = | | = ldr:dmnt = |
Line 36: |
Line 35: |
| | | |
| == GetProcessModuleInfo == | | == GetProcessModuleInfo == |
− | Takes in a u64 Process ID, and a C descriptor out array of [[#ModuleInfos]]. Returns the number of ModuleInfos copied to output. | + | Takes in a u64 Process ID, and a C descriptor out array of [[#ModuleInfo]]s. Returns the number of ModuleInfos copied to output. |
| | | |
− | ModuleInfo is the same here as for ro:dmnt.
| + | = ldr:pm = |
| + | This is "nn::ldr::detail::IProcessManagerInterface". |
| | | |
− | ModuleInfo has the following layout:
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || CreateProcess |
| + | |- |
| + | | 1 || [[#GetProgramInfo]] |
| + | |- |
| + | | 2 || [[#PinProgram]] |
| + | |- |
| + | | 3 || [[#UnpinProgram]] |
| + | |} |
| + | |
| + | == GetProgramInfo == |
| + | Takes an ncm::ProgramLocation, parses the NPDM, and writes a [[#ProgramInfo]] to a C descriptor buffer. |
| + | |
| + | == PinProgram == |
| + | Takes an ncm::ProgramLocation, returns a u64 "PinId". |
| + | |
| + | == UnpinProgram == |
| + | Takes a PinId from [[#PinProgram]]. |
| | | |
− | === ModuleInfo ===
| + | = ModuleInfo = |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 51: |
Line 71: |
| | 0x0 | | | 0x0 |
| | 0x20 | | | 0x20 |
− | | Build ID | + | | ModuleId |
| |- | | |- |
| | 0x20 | | | 0x20 |
| | 0x8 | | | 0x8 |
− | | Mapped Address | + | | ImageAddress |
| |- | | |- |
| | 0x28 | | | 0x28 |
| | 0x8 | | | 0x8 |
− | | Mapped Size | + | | ImageSize |
− | |-
| |
| |} | | |} |
| | | |
− | | + | = ProgramInfo = |
− | = ldr:pm = | |
− | This is "nn::ldr::detail::IProcessManagerInterface".
| |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Cmd || Name
| |
− | |-
| |
− | | 0 || CreateProcess
| |
− | |-
| |
− | | 1 || [[#GetProgramInfo]]
| |
− | |-
| |
− | | 2 || [[#PinProgram]]
| |
− | |-
| |
− | | 3 || [[#UnpinProgram]]
| |
− | |}
| |
− | | |
− | == GetProgramInfo ==
| |
− | Takes an ncm::ProgramLocation, parses the NPDM, and writes a [[#ProgramInfo]] to a C descriptor buffer as follows:
| |
− | | |
− | === ProgramInfo ===
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 146: |
Line 145: |
| | ACI0 [[NPDM#FS Access Control|FS Access Control]] | | | ACI0 [[NPDM#FS Access Control|FS Access Control]] |
| |} | | |} |
− |
| |
− | == PinProgram ==
| |
− | Takes an ncm::ProgramLocation, returns a u64 "PinId".
| |
− |
| |
− | == UnpinProgram ==
| |
− | Takes a PinId from [[#PinProgram]].
| |
| | | |
| [[Category:Services]] | | [[Category:Services]] |