Loader services: Difference between revisions
No edit summary |
No edit summary |
||
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 [[# | Takes in a u64 Process ID, and a C descriptor out array of [[#ModuleInfo]]s. Returns the number of ModuleInfos copied to output. | ||
= 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. | |||
== PinProgram == | |||
Takes an ncm::ProgramLocation, returns a u64 "PinId". | |||
== UnpinProgram == | |||
Takes a PinId from [[#PinProgram]]. | |||
= ModuleInfo = | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 51: | Line 71: | ||
| 0x0 | | 0x0 | ||
| 0x20 | | 0x20 | ||
| | | ModuleId | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x8 | | 0x8 | ||
| | | ImageAddress | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 0x8 | | 0x8 | ||
| | | ImageSize | ||
|} | |} | ||
= 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]] | ||
|} | |} | ||
[[Category:Services]] | [[Category:Services]] |