Process Manager services: Difference between revisions

No edit summary
Line 1: Line 1:
= LaunchFlags =
{| class=wikitable
! Bit || Mask || Name
|-
| 0 || 1 || LaunchFlags_NotifyWhenExited
|-
| 1 || 2 || LaunchFlags_StartSuspended
|-
| 2 || 4 ||
|-
| 3 || 8 ||
|-
| 4 || 0x10 || LaunchFlags_NotifyDebugEvents
|-
| 5 || 0x20 || [2.0.0+] LaunchFlags_NotifyDebugSpecial
|}
= Process Tracker thread =
= Process Tracker thread =
PM has a separate thread that is waiting for synchronization on process handles.
PM has a separate thread that is waiting for synchronization on process handles.
Line 23: Line 41:
It uses [[Loader_services|ldr:pm]] GetProgramInfo with the supplied title-id.
It uses [[Loader_services|ldr:pm]] GetProgramInfo with the supplied title-id.


If ApplicationType == Application, it goes through the process list and errors if any has bit 0x40 set. Thus you can only run one Application at a time.
If ApplicationType == Application, it goes through the process list and errors if any has mask 0x40 set. Thus you can only run one Application at a time.


Resource limits for the process is selected by ApplicationType.
Resource limits for the process is selected by ApplicationType.
Line 163: Line 181:
Returns 2 if flags has mask 1 set and state is 6.
Returns 2 if flags has mask 1 set and state is 6.


Returns 3 if flags has mask 0x10 set and not bit5.
Returns 3 if flags has mask 0x10 set and not 0x20.


Returns 4 if flags has mask 0x30 set.
Returns 4 if flags has mask 0x30 set.