NS services: Difference between revisions

(4 intermediate revisions by 2 users not shown)
Line 615: Line 615:
| 93 || [5.0.0+] GetMainApplicationProgramIndex
| 93 || [5.0.0+] GetMainApplicationProgramIndex
|-
|-
| 94 || [6.0.0+] LaunchApplication
| 94 || [6.0.0+] [[#LaunchApplication_2|LaunchApplication]]
|-
|-
| 95 || [6.0.0+] GetApplicationLaunchInfo
| 95 || [6.0.0+] [[#GetApplicationLaunchInfo]]
|-
|-
| 96 || [6.0.0+] AcquireApplicationLaunchInfo
| 96 || [6.0.0+] [[#AcquireApplicationLaunchInfo]]
|-
|-
| 97 || [6.0.0+] GetMainApplicationProgramIndexByApplicationLaunchInfo
| 97 || [6.0.0+] GetMainApplicationProgramIndexByApplicationLaunchInfo
Line 657: Line 657:
| 301 || PopApplicationShellEventInfo
| 301 || PopApplicationShellEventInfo
|-
|-
| 302 || LaunchLibraryApplet
| 302 || [[#LaunchLibraryApplet]]
|-
|-
| 303 || TerminateLibraryApplet
| 303 || TerminateLibraryApplet
|-
|-
| 304 || LaunchSystemApplet
| 304 || [[#LaunchSystemApplet]]
|-
|-
| 305 || TerminateSystemApplet
| 305 || TerminateSystemApplet
|-
|-
| 306 || LaunchOverlayApplet
| 306 || [[#LaunchOverlayApplet]]
|-
|-
| 307 || TerminateOverlayApplet
| 307 || TerminateOverlayApplet
Line 903: Line 903:
| 2155 || [7.0.0+] UpdateRightsEnvironmentStatus
| 2155 || [7.0.0+] UpdateRightsEnvironmentStatus
|-
|-
| 2156 || [9.0.0+] CreateRightsEnvironmentForPreomia
| 2156 || [10.0.0+] CreateRightsEnvironmentForMicroApplication ([9.0.0-9.2.0] CreateRightsEnvironmentForPreomia)
|-
|-
| 2160 || [6.0.0+] AddTargetApplicationToRightsEnvironment
| 2160 || [6.0.0+] AddTargetApplicationToRightsEnvironment
Line 955: Line 955:
| 2511 || [9.0.0+] [[#GetApplicationResource]]
| 2511 || [9.0.0+] [[#GetApplicationResource]]
|-
|-
| 2513 || [9.0.0+] LaunchPreomia
| 2513 || [10.0.0+] LaunchMicroApplication ([9.0.0-9.2.0] LaunchPreomia)
|-
|-
| 2514 || [9.0.0+] ClearTaskOfAsyncTaskManager
| 2514 || [9.0.0+] ClearTaskOfAsyncTaskManager
Line 1,060: Line 1,060:


See [[#RequestApplicationUpdateInfo]] regarding nifm.
See [[#RequestApplicationUpdateInfo]] regarding nifm.
==== LaunchApplication ====
Takes an input u8 ProgramIndex, an input [[#ApplicationLaunchInfo]], returns an output u64.
==== GetApplicationLaunchInfo ====
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output [[#ApplicationLaunchInfo]].
==== AcquireApplicationLaunchInfo ====
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output [[#ApplicationLaunchInfo]].
This verifies that a state flag is set and that a state field matches the input ApplicationId, throwing an error otherwise. The [[#ApplicationLaunchInfo]] from state is copied to output, then the state flag is cleared.


==== LaunchDevMenu ====
==== LaunchDevMenu ====
Line 1,070: Line 1,081:
[[NCM_services#ncm|OpenContentMetaDatabase]] is used with StorageId = NandSystem, then IContentMetaDatabase GetLatestContentMetaKey is used with both of the above ProgramIds to verify that the cmd is successful.
[[NCM_services#ncm|OpenContentMetaDatabase]] is used with StorageId = NandSystem, then IContentMetaDatabase GetLatestContentMetaKey is used with both of the above ProgramIds to verify that the cmd is successful.


Then if the above succeeds, the above titles are launched with the above StorageId via [[Process_Manager_services|pmshell]] LaunchProgram, with a 0.5s sleep-thread afterwards on success.
Then if the above succeeds, the above titles are launched with the above StorageId via [[Process_Manager_services|pmshell]] LaunchProgram ([10.0.0+] [[PGL_services#LaunchProgram|pgl]] with pgl_launch_flags=0), with a 0.5s sleep-thread afterwards on success. [[Process_Manager_services#LaunchFlags|LaunchFlags]] value 0xB is used here.


==== DeleteUserSaveDataAll ====
==== DeleteUserSaveDataAll ====
Line 1,088: Line 1,099:
==== UnregisterNetworkServiceAccountWithUserSaveDataDeletion ====
==== UnregisterNetworkServiceAccountWithUserSaveDataDeletion ====
Takes an input [[Account_services#Uid|Uid]], no output.
Takes an input [[Account_services#Uid|Uid]], no output.
==== LaunchLibraryApplet ====
Takes an input u64 [[NCM_services#ProgramId|ProgramId]], returns an output u64.
The specified program is launched with StorageId=BuiltInSystem via [[Process_Manager_services|pmshell]] LaunchProgram ([10.0.0+] [[PGL_services#LaunchProgram|pgl]] with pgl_launch_flags=0). [[Process_Manager_services#LaunchFlags|LaunchFlags]] value 0x9 is used here. The output u64 from here is written to the output for this cmd, on success.
This is used by [[Applet_Manager_services|AM]].
==== LaunchSystemApplet ====
No input, returns an output u64.
A state flag must be zero, otherwise an error is thrown. When a state field is value 1, a hard-coded ProgramId for MaintenanceMenu is used. Otherwise, the ProgramId is loaded from [[System_Settings|system-setting]] <code>ns.applet!system_applet_id</code>.
The SystemApplet is launched with StorageId=BuiltInSystem via [[Process_Manager_services|pmshell]] LaunchProgram ([10.0.0+] [[PGL_services#LaunchProgram|pgl]] with pgl_launch_flags=0). [[Process_Manager_services#LaunchFlags|LaunchFlags]] value 0x9 is used here. The output u64 from here is written to the output for this cmd, on success.
This is used by [[Applet_Manager_services|AM]].
==== LaunchOverlayApplet ====
No input, returns an output u64.
A state flag must be zero, otherwise an error is thrown. The ProgramId is loaded from [[System_Settings|system-setting]] <code>ns.applet!overlay_applet_id</code>.
The OverlayApplet is launched with StorageId=BuiltInSystem via [[Process_Manager_services|pmshell]] LaunchProgram ([10.0.0+] [[PGL_services#LaunchProgram|pgl]] with pgl_launch_flags=0). [[Process_Manager_services#LaunchFlags|LaunchFlags]] value 0x9 is used here. The output u64 from here is written to the output for this cmd, on success.
This is used by [[Applet_Manager_services|AM]].


==== RequestDownloadApplicationControlData ====
==== RequestDownloadApplicationControlData ====
Line 2,570: Line 2,606:
= DownloadTaskStatus =
= DownloadTaskStatus =
This is "nn::ns::DownloadTaskStatus". This is a 0x20-byte struct.
This is "nn::ns::DownloadTaskStatus". This is a 0x20-byte struct.
= ApplicationLaunchInfo =
This is a 0x40-byte struct.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
|-
| 0x8 || 0x4 || Application version
|-
| 0xC || 0x4 || [[Process_Manager_services#LaunchFlags|LaunchFlags]], set to hard-coded value 0xB by [[#GetApplicationLaunchInfo]].
|-
| 0x10 || 0x1 || Application [[NCM_services#StorageId|StorageId]]
|-
| 0x11 || 0x1 || Update [[NCM_services#StorageId|StorageId]]
|-
| 0x12 || 0x2E ||
|}


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