Changes

Jump to navigation Jump to search
13,030 bytes added ,  19:52, 4 November 2020
m
Line 23: Line 23:  
|-
 
|-
 
| 8 || [4.0.0+] GetAddOnContentListChangedEvent
 
| 8 || [4.0.0+] GetAddOnContentListChangedEvent
 +
|-
 +
| 9 || [10.0.0+] GetAddOnContentLostErrorCode
 
|-
 
|-
 
| 100 || [7.0.0+] [[#IPurchaseEventManager|CreateEcPurchasedEventManager]]
 
| 100 || [7.0.0+] [[#IPurchaseEventManager|CreateEcPurchasedEventManager]]
Line 76: Line 78:  
| 9 || MoveApplicationEntity
 
| 9 || MoveApplicationEntity
 
|-
 
|-
| 11 || CalculateApplicationOccupiedSize
+
| 11 || [[#CalculateApplicationOccupiedSize]]
 
|-
 
|-
 
| 16 || PushApplicationRecord
 
| 16 || PushApplicationRecord
Line 82: Line 84:  
| 17 || ListApplicationRecordContentMeta
 
| 17 || ListApplicationRecordContentMeta
 
|-
 
|-
| 18 ||  
+
| 18 || CheckLaunchRights
 
|-
 
|-
 
| 19 || [[#LaunchApplication]]
 
| 19 || [[#LaunchApplication]]
Line 122: Line 124:  
| 42 || CleanupSdCard
 
| 42 || CleanupSdCard
 
|-
 
|-
| 43 || CheckSdCardMountStatus
+
| 43 || [[#CheckSdCardMountStatus]]
 
|-
 
|-
 
| 44 || GetSdCardMountStatusChangedEvent
 
| 44 || GetSdCardMountStatusChangedEvent
Line 212: Line 214:  
| 504 || [2.0.0+] RequestRegisterGameCard
 
| 504 || [2.0.0+] RequestRegisterGameCard
 
|-
 
|-
| 600 || [2.0.0+] CountApplicationContentMeta
+
| 600 || [2.0.0+] [[#CountApplicationContentMeta]]
 
|-
 
|-
 
| 601 || [2.0.0+] [[#ListApplicationContentMetaStatus]]
 
| 601 || [2.0.0+] [[#ListApplicationContentMetaStatus]]
Line 226: Line 228:  
| 700 || [2.0.0+] PushDownloadTaskList
 
| 700 || [2.0.0+] PushDownloadTaskList
 
|-
 
|-
| 701 || [2.0.0+] ClearTaskStatusList
+
| 701 || [2.0.0+] [[#ClearTaskStatusList]]
 
|-
 
|-
| 702 || [2.0.0+] RequestDownloadTaskList
+
| 702 || [2.0.0+] [[#RequestDownloadTaskList]]
 
|-
 
|-
| 703 || [2.0.0+] RequestEnsureDownloadTask
+
| 703 || [2.0.0+] [[#RequestEnsureDownloadTask]]
 
|-
 
|-
| 704 || [2.0.0+] ListDownloadTaskStatus
+
| 704 || [2.0.0+] [[#ListDownloadTaskStatus]]
 
|-
 
|-
 
| 705 || [2.0.0+] RequestDownloadTaskListData
 
| 705 || [2.0.0+] RequestDownloadTaskListData
Line 433: Line 435:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 7988 || [6.0.0+] [[#IDynamicRightsInterface|GetDynamicRightsInterface]].
+
| 7988 || [6.0.0+] [[#IDynamicRightsInterface|GetDynamicRightsInterface]]
 
|-
 
|-
| 7989 || [5.1.0+] [[#IReadOnlyApplicationControlDataInterface|GetReadOnlyApplicationControlDataInterface]].
+
| 7989 || [5.1.0+] [[#IReadOnlyApplicationControlDataInterface|GetReadOnlyApplicationControlDataInterface]]
 
|-
 
|-
| 7991 || [5.0.0+] [[#IReadOnlyApplicationRecordInterface|GetReadOnlyApplicationRecordInterface]].
+
| 7991 || [5.0.0+] [[#IReadOnlyApplicationRecordInterface|GetReadOnlyApplicationRecordInterface]]
 
|-
 
|-
 
| 7992 || [4.0.0+] [[#IECommerceInterface|GetECommerceInterface]]
 
| 7992 || [4.0.0+] [[#IECommerceInterface|GetECommerceInterface]]
Line 491: Line 493:  
| 8 || [[#IsApplicationEntityMovable]]
 
| 8 || [[#IsApplicationEntityMovable]]
 
|-
 
|-
| 9 || [[#MoveApplicationEntity]]
+
| 9 || [1.0.0-9.2.0] [[#MoveApplicationEntity]]
 
|-
 
|-
| 11 || CalculateApplicationOccupiedSize
+
| 11 || [[#CalculateApplicationOccupiedSize]]
 
|-
 
|-
 
| 16 || PushApplicationRecord
 
| 16 || PushApplicationRecord
Line 535: Line 537:  
| 42 || [[#CleanupSdCard]]
 
| 42 || [[#CleanupSdCard]]
 
|-
 
|-
| 43 || CheckSdCardMountStatus
+
| 43 || [[#CheckSdCardMountStatus]]
 
|-
 
|-
 
| 44 || [[#GetSdCardMountStatusChangedEvent]]
 
| 44 || [[#GetSdCardMountStatusChangedEvent]]
Line 613: 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 625: Line 627:  
| 99 || [8.0.0+] [[#LaunchDevMenu]]
 
| 99 || [8.0.0+] [[#LaunchDevMenu]]
 
|-
 
|-
| 100 || ResetToFactorySettings
+
| 100 || [[#ResetToFactorySettings]]
 +
|-
 +
| 101 || [[#ResetToFactorySettingsWithoutUserSaveData]]
 +
|-
 +
| 102 || [[#ResetToFactorySettingsForRefurbishment]]
 
|-
 
|-
| 101 || ResetToFactorySettingsWithoutUserSaveData
+
| 103 || [9.1.0+] [[#ResetToFactorySettingsWithPlatformRegion]]
 
|-
 
|-
| 102 || ResetToFactorySettingsForRefurbishment
+
| 104 || [9.1.0+] [[#ResetToFactorySettingsWithPlatformRegionAuthentication]]
 
|-
 
|-
| 103 || [9.1.0+] ResetToFactorySettingsWithPlatformRegion
+
| 105 || [10.0.0+] [[#RequestResetToFactorySettingsSecurely]]
 
|-
 
|-
| 104 || [9.1.0+] ResetToFactorySettingsWithPlatformRegionAuthentication
+
| 106 || [10.0.0+] [[#RequestResetToFactorySettingsWithPlatformRegionAuthenticationSecurely]]
 
|-
 
|-
 
| 200 || CalculateUserSaveDataStatistics
 
| 200 || CalculateUserSaveDataStatistics
 
|-
 
|-
| 201 || DeleteUserSaveDataAll
+
| 201 || [[#DeleteUserSaveDataAll]]
 
|-
 
|-
 
| 210 || [[#DeleteUserSystemSaveData]]
 
| 210 || [[#DeleteUserSystemSaveData]]
Line 651: 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 699: Line 705:  
| 510 || [9.0.0+] [[#GetGameCardPlatformRegion]]
 
| 510 || [9.0.0+] [[#GetGameCardPlatformRegion]]
 
|-
 
|-
| 600 || CountApplicationContentMeta
+
| 600 || [[#CountApplicationContentMeta]]
 
|-
 
|-
 
| 601 || [[#ListApplicationContentMetaStatus]]
 
| 601 || [[#ListApplicationContentMetaStatus]]
Line 713: Line 719:  
| 606 || [3.0.0+] GetContentMetaStorage
 
| 606 || [3.0.0+] GetContentMetaStorage
 
|-
 
|-
| 607 || [6.0.0+] ListAvailableAddOnContent
+
| 607 || [6.0.0+] [[#ListAvailableAddOnContent]]
 
|-
 
|-
 
| 700 || PushDownloadTaskList
 
| 700 || PushDownloadTaskList
 
|-
 
|-
| 701 || ClearTaskStatusList
+
| 701 || [[#ClearTaskStatusList]]
 
|-
 
|-
| 702 || RequestDownloadTaskList
+
| 702 || [[#RequestDownloadTaskList]]
 
|-
 
|-
| 703 || RequestEnsureDownloadTask
+
| 703 || [[#RequestEnsureDownloadTask]]
 
|-
 
|-
| 704 || ListDownloadTaskStatus
+
| 704 || [[#ListDownloadTaskStatus]]
 
|-
 
|-
 
| 705 || [[#RequestDownloadTaskListData]]
 
| 705 || [[#RequestDownloadTaskListData]]
Line 769: Line 775:  
| 1001 || CorruptApplicationForDebug
 
| 1001 || CorruptApplicationForDebug
 
|-
 
|-
| 1002 || [3.0.0+] [[#RequestVerifyAddOnContentsRights]]
+
| 1002 || [3.0.0-9.2.0] [[#RequestVerifyAddOnContentsRights]]
 
|-
 
|-
 
| 1003 || [5.0.0+] [[#RequestVerifyApplication]]
 
| 1003 || [5.0.0+] [[#RequestVerifyApplication]]
Line 783: Line 789:  
| 1302 || CleanupUnrecordedApplicationEntity
 
| 1302 || CleanupUnrecordedApplicationEntity
 
|-
 
|-
| 1303 || [3.0.0+] CleanupAddOnContentsWithNoRights
+
| 1303 || [3.0.0-9.2.0] CleanupAddOnContentsWithNoRights
 
|-
 
|-
 
| 1304 || [3.0.0+] DeleteApplicationContentEntity
 
| 1304 || [3.0.0+] DeleteApplicationContentEntity
Line 790: Line 796:  
|-
 
|-
 
| 1309 || [6.0.0+] [[#CleanupUnavailableAddOnContents]]
 
| 1309 || [6.0.0+] [[#CleanupUnavailableAddOnContents]]
 +
|-
 +
| 1310 || [10.0.0+] RequestMoveApplicationEntity
 +
|-
 +
| 1311 || [10.0.0+] EstimateSizeToMove
 +
|-
 +
| 1312 || [10.0.0+] HasMovableEntity
 
|-
 
|-
 
| 1400 || PrepareShutdown
 
| 1400 || PrepareShutdown
Line 891: 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 911: Line 923:  
| 2199 || [6.0.0+] GetRightsEnvironmentCountForDebug
 
| 2199 || [6.0.0+] GetRightsEnvironmentCountForDebug
 
|-
 
|-
| 2200 || [6.0.0+] GetGameCardApplicationCopyIdentifier
+
| 2200 || [6.0.0-9.2.0] GetGameCardApplicationCopyIdentifier
 
|-
 
|-
| 2201 || [6.0.0+] GetInstalledApplicationCopyIdentifier
+
| 2201 || [6.0.0-9.2.0] GetInstalledApplicationCopyIdentifier
 
|-
 
|-
 
| 2250 || [6.0.0-6.2.0] RequestReportActiveELicence
 
| 2250 || [6.0.0-6.2.0] RequestReportActiveELicence
Line 924: Line 936:  
|-
 
|-
 
| 2352 || [9.0.0+] [[#RequestResolveNoDownloadRightsError]]
 
| 2352 || [9.0.0+] [[#RequestResolveNoDownloadRightsError]]
 +
|-
 +
| 2353 || [10.0.0+] GetApplicationDownloadTaskInfo
 
|-
 
|-
 
| 2400 || [8.0.0+] [[#GetPromotionInfo]]
 
| 2400 || [8.0.0+] [[#GetPromotionInfo]]
Line 941: 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
 +
|-
 +
| 2515 || [10.0.0+] CleanupAllPlaceHolderAndFragmentsIfNoTask
 +
|-
 +
| 2516 || [10.0.0+] EnsureApplicationCertificate
 
|-
 
|-
 
| 2800 || [9.0.0+] GetApplicationIdOfPreomia
 
| 2800 || [9.0.0+] GetApplicationIdOfPreomia
 +
|-
 +
| 9999 || [10.0.0+] GetApplicationCertificate
 
|}
 
|}
   Line 1,040: 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,050: 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 ====
 +
Takes an input [[Account_services#Uid|Uid]], returns an output [[#IProgressMonitorForDeleteUserSaveDataAll]].
 +
 
 +
On success, [[#IProgressMonitorForDeleteUserSaveDataAll]] GetProgress is used with the output being copied into object state.
    
==== DeleteUserSystemSaveData ====
 
==== DeleteUserSystemSaveData ====
Line 1,064: Line 1,100:  
Takes an input [[Account_services#Uid|Uid]], no output.
 
Takes an input [[Account_services#Uid|Uid]], no output.
   −
==== RequestDownloadApplicationControlData ====
+
==== LaunchLibraryApplet ====
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output Event handle and an [[#IAsyncResult]].
+
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.
   −
See [[#RequestApplicationUpdateInfo]] regarding nifm.
+
This is used by [[Applet_Manager_services|AM]].
   −
==== ListApplicationTitle ====
+
==== LaunchSystemApplet ====
Takes an input TransferMemory handle, a type-0x5 input buffer containing an array of u64s, an u8, an u64 size, returns an output Event handle and an [[#IAsyncValue]].
+
No input, returns an output u64.
   −
[[qlaunch]] uses value 0x1 for the u8.
+
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>.
   −
==== ListApplicationIcon ====
+
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.
Takes an input TransferMemory handle, a type-0x5 input buffer containing an array of u64s, an u8, an u64 size, returns an output Event handle and an [[#IAsyncValue]].
     −
==== RequestCheckGameCardRegistration ====
+
This is used by [[Applet_Manager_services|AM]].
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output Event handle and an [[#IAsyncResult]].
     −
See [[#RequestApplicationUpdateInfo]] regarding nifm.
+
==== 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 ====
 +
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output Event handle and an [[#IAsyncResult]].
 +
 
 +
See [[#RequestApplicationUpdateInfo]] regarding nifm.
 +
 
 +
==== ListApplicationTitle ====
 +
Takes an input TransferMemory handle, a type-0x5 input buffer containing an array of u64 [[NCM_services#ApplicationId|ApplicationIds]], an u8 [[#ApplicationControlSource]], an u64 size, returns an output Event handle and an [[#IAsyncValue]].
 +
 
 +
[[qlaunch]] uses value 0x1 for the u8.
 +
 
 +
The user-process creates the TransferMemory with permissions=R--.
 +
 
 +
The data available with [[#IAsyncValue]] Get is a s32 for the offset within the TransferMemory where the output data is located, GetSize returns the total byte-size of the data located here. The data located here is the [[NACP_Format|NACP]] title-entry for each specified ApplicationId.
 +
 
 +
The TransferMemory size must be at least: count*sizeof([[NACP_Format|title-entry]]) + count*sizeof(u64) + count*[[#GetApplicationControlData|0x24000]].
 +
 
 +
This is essentially an async wrapper for [[#GetApplicationControlData]], with support for multiple ApplicationIds.
 +
 
 +
==== ListApplicationIcon ====
 +
Takes an input TransferMemory handle, a type-0x5 input buffer containing an array of u64 [[NCM_services#ApplicationId|ApplicationIds]], an u8 [[#ApplicationControlSource]], an u64 size, returns an output Event handle and an [[#IAsyncValue]].
 +
 
 +
The user-process creates the TransferMemory with permissions=R--.
 +
 
 +
The data available with [[#IAsyncValue]] Get is a s32 for the offset within the TransferMemory where the output data is located, GetSize returns the total byte-size of the data located here. This data is: an u64 for total entries, an array of u64s for each icon size, then the icon JPEGs for the specified ApplicationIds.
 +
 
 +
The TransferMemory size must be at least: 0x4 + count*sizeof(u64) + count*[[#GetApplicationControlData|0x20000]] + count*sizeof(u64) + [[#GetApplicationControlData|0x24000]].
 +
 
 +
This is essentially an async wrapper for [[#GetApplicationControlData]], with support for multiple ApplicationIds.
 +
 
 +
==== RequestCheckGameCardRegistration ====
 +
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output Event handle and an [[#IAsyncResult]].
 +
 
 +
See [[#RequestApplicationUpdateInfo]] regarding nifm.
    
==== RequestGameCardRegistrationGoldPoint ====
 
==== RequestGameCardRegistrationGoldPoint ====
Line 1,113: Line 1,190:     
This calls [[Filesystem_services#IDeviceOperator|fsp-srv IDeviceOperator]] GetGameCardCompatibilityType and returns the result.
 
This calls [[Filesystem_services#IDeviceOperator|fsp-srv IDeviceOperator]] GetGameCardCompatibilityType and returns the result.
 +
 +
==== ListAvailableAddOnContent ====
 +
[10.0.0+] This now takes a total of 0x10-bytes of input instead of a total of 0x18-bytes of input.
    
==== RequestDownloadTaskListData ====
 
==== RequestDownloadTaskListData ====
Line 1,244: Line 1,324:  
** Uses [[NIM_services|nim]] cmd56, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Uses [[NIM_services|nim]] cmd56, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Handles cleanup and returns.
 
** Handles cleanup and returns.
* On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set.
+
* On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set.
 
** The EventId is "receive_app_contents" with ApplicationId <NS ProgramId>.
 
** The EventId is "receive_app_contents" with ApplicationId <NS ProgramId>.
   Line 1,273: Line 1,353:  
** Uses [[NIM_services|nim]] cmd61, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Uses [[NIM_services|nim]] cmd61, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Handles cleanup and returns.
 
** Handles cleanup and returns.
* On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set.
+
* On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set.
 
** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>.
 
** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>.
   Line 1,375: Line 1,455:  
|}
 
|}
   −
=== IProgressAsyncResult ===
+
When closing the object, official sw uses IsFinished first, asserting when the output bool is false.
This is "nn::ns::detail::IProgressAsyncResult".
+
 
 +
* GetSystemEvent: No input, returns an output Event handle. [[qlaunch]] doesn't use this.
   −
{| class="wikitable" border="1"
+
* IsFinished: No input, returns an output u8 bool.
 +
 
 +
* GetResult: No input/output.
 +
 
 +
* GetProgress: No input, returns an output [[#ProgressForDeleteUserSaveDataAll]]. Official sw writes this struct directly to object state.
 +
 
 +
=== IProgressAsyncResult ===
 +
This is "nn::ns::detail::IProgressAsyncResult".
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
 
! Cmd || Name
 
! Cmd || Name
Line 1,426: Line 1,516:  
The data that can be read from the [[#IAsyncValue]] is [[#VersionListData]].
 
The data that can be read from the [[#IAsyncValue]] is [[#VersionListData]].
   −
=== IContentManagerInterface ===
+
=== IContentManagementInterface ===
 
This is "nn::ns::detail::IContentManagementInterface".
 
This is "nn::ns::detail::IContentManagementInterface".
   Line 1,433: Line 1,523:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 11 || CalculateApplicationOccupiedSize
+
| 11 || [[#CalculateApplicationOccupiedSize]]
 
|-
 
|-
| 43 || CheckSdCardMountStatus
+
| 43 || [[#CheckSdCardMountStatus]]
 
|-
 
|-
| 47 || GetTotalSpaceSize
+
| 47 || [[#GetTotalSpaceSize]]
 
|-
 
|-
| 48 || GetFreeSpaceSize
+
| 48 || [[#GetFreeSpaceSize]]
 
|-
 
|-
| 600 || CountApplicationContentMeta
+
| 600 || [[#CountApplicationContentMeta]]
 
|-
 
|-
| 601 || ListApplicationContentMetaStatus
+
| 601 || [[#ListApplicationContentMetaStatus]]
 
|-
 
|-
| 605 || ListApplicationContentMetaStatusWithRightsCheck
+
| 605 || [[#ListApplicationContentMetaStatusWithRightsCheck]]
 
|-
 
|-
| 607 || IsAnyApplicationRunning
+
| 607 || [[#IsAnyApplicationRunning]]
 
|}
 
|}
 +
 +
==== CalculateApplicationOccupiedSize ====
 +
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output [[#ApplicationOccupiedSize]].
 +
 +
==== CheckSdCardMountStatus ====
 +
No input/output.
 +
 +
==== CountApplicationContentMeta ====
 +
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output s32.
 +
 +
==== ListApplicationContentMetaStatusWithRightsCheck ====
 +
Same input/output as [[#ListApplicationContentMetaStatus]].
 +
 +
==== IsAnyApplicationRunning ====
 +
No input, returns an output u8 bool.
    
=== IDocumentInterface ===
 
=== IDocumentInterface ===
Line 1,471: Line 1,576:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 701 || ClearTaskStatusList
+
| 701 || [[#ClearTaskStatusList]]
 
|-
 
|-
| 702 || RequestDownloadTaskList
+
| 702 || [[#RequestDownloadTaskList]]
 
|-
 
|-
| 703 || RequestEnsureDownloadTask
+
| 703 || [[#RequestEnsureDownloadTask]]
 
|-
 
|-
| 704 || ListDownloadTaskStatus
+
| 704 || [[#ListDownloadTaskStatus]]
 
|-
 
|-
 
| 705 || [[#RequestDownloadTaskListData]]
 
| 705 || [[#RequestDownloadTaskListData]]
 
|-
 
|-
| 706 || [4.0.0+] TryCommitCurrentApplicationDownloadTask
+
| 706 || [4.0.0+] [[#TryCommitCurrentApplicationDownloadTask]]
 
|-
 
|-
| 707 || [4.0.0+] EnableAutoCommit
+
| 707 || [4.0.0+] [[#EnableAutoCommit]]
 
|-
 
|-
| 708 || [4.0.0+] DisableAutoCommit
+
| 708 || [4.0.0+] [[#DisableAutoCommit]]
 
|-
 
|-
| 709 || [4.0.0+] TriggerDynamicCommitEvent
+
| 709 || [4.0.0+] [[#TriggerDynamicCommitEvent]]
 
|}
 
|}
   −
=== IReadOnlyApplicationRecordInterface ===
+
==== ClearTaskStatusList ====
This is "nn::ns::detail::IReadOnlyApplicationRecordInterface".
+
No input/output.
   −
This was added with [5.0.0+].
+
==== RequestDownloadTaskList ====
 +
No input/output.
   −
{| class="wikitable" border="1"
+
==== RequestEnsureDownloadTask ====
|-
+
No input, returns an output Event handle and an [[#IAsyncResult]].
! Cmd || Name || Notes
  −
|-
  −
| 0 || HasApplicationRecord || Same as [[#IApplicationManagerInterface]] cmd 910
  −
|}
     −
=== IReadOnlyApplicationControlDataInterface ===
+
==== ListDownloadTaskStatus ====
This is "nn::ns::detail::IReadOnlyApplicationControlDataInterface".
+
Takes a type-0x6 output buffer containing an array of [[#DownloadTaskStatus]], returns an output s32 total_out.
 +
 
 +
A maximum of 0x100 tasks can be stored in state.
 +
 
 +
==== TryCommitCurrentApplicationDownloadTask ====
 +
No input/output.
 +
 
 +
==== EnableAutoCommit ====
 +
No input/output.
 +
 
 +
==== DisableAutoCommit ====
 +
No input/output.
 +
 
 +
==== TriggerDynamicCommitEvent ====
 +
No input/output.
 +
 
 +
=== IReadOnlyApplicationRecordInterface ===
 +
This is "nn::ns::detail::IReadOnlyApplicationRecordInterface".
 +
 
 +
This was added with [5.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || HasApplicationRecord || Same as [[#IApplicationManagerInterface]] cmd 910
 +
|-
 +
| 1 || [10.0.0+] NotifyApplicationFailure ||
 +
|-
 +
| 2 || [10.0.0+] IsDataCorruptedResult ||
 +
|}
 +
 
 +
=== IReadOnlyApplicationControlDataInterface ===
 +
This is "nn::ns::detail::IReadOnlyApplicationControlDataInterface".
    
This was added with [5.1.0+].
 
This was added with [5.1.0+].
Line 1,529: Line 1,664:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 +
|-
 +
| 0 || [[#RequestApplicationRightsOnServer]]
 
|-
 
|-
| 0 || [[#RequestApplicationRightsOnServer]] ||
+
| 1 || [[#RequestAssignRights]]
 
|-
 
|-
| 1 || RequestAssignRights ||  
+
| 4 || [[#DeprecatedRequestAssignRightsToResume]]
 
|-
 
|-
| 4 || DeprecatedRequestAssignRightsToResume ||  
+
| 5 || [[#VerifyActivatedRightsOwners]]
 
|-
 
|-
| 5 || VerifyActivatedRightsOwners ||  
+
| 6 || [[#DeprecatedGetApplicationRightsStatus]]
 
|-
 
|-
| 6 || DeprecatedGetApplicationRightsStatus ||  
+
| 7 || [[#RequestPrefetchForDynamicRights]]
 
|-
 
|-
| 7 || RequestPrefetchForDynamicRights ||  
+
| 8 || [[#GetDynamicRightsState]]
 
|-
 
|-
| 8 || GetDynamicRightsState ||  
+
| 9 || [7.0.0+] [[#RequestApplicationRightsOnServerToResume]]
 
|-
 
|-
| 9 || [7.0.0+] [[#RequestApplicationRightsOnServerToResume]] ||
+
| 10 || [7.0.0+] [[#RequestAssignRightsToResume]]
 
|-
 
|-
| 10 || [7.0.0+] RequestAssignRightsToResume ||
+
| 11 || [7.0.0+] [[#GetActivatedRightsUsers]]
 
|-
 
|-
| 11 || [7.0.0+] GetActivatedRightsUsers ||
+
| 12 || [8.0.0+] [[#GetApplicationRightsStatus]]
 
|-
 
|-
| 12 || [8.0.0+] GetApplicationRightsStatus ||
+
| 13 || [8.0.0+] [[#GetRunningApplicationStatus]]
 
|-
 
|-
| 13 || [8.0.0+] GetRunningApplicationStatus ||
+
| 14 || [10.0.0+] SelectApplicationLicense
 
|}
 
|}
    
==== RequestApplicationRightsOnServer ====
 
==== RequestApplicationRightsOnServer ====
Takes a total of 0x20-bytes of input, returns an output Event handle and an [[#IAsyncValue]].
+
Takes an input [[NCM_services#ApplicationId|ApplicationId]], an [[Account_services#Uid|Uid]] and an u32. Returns an output Event handle and an [[#IAsyncValue]].
   −
==== RequestApplicationRightsOnServerToResume ====
+
==== RequestAssignRights ====
Takes a total of 8-bytes of input, returns an output Event handle and an [[#IAsyncValue]].
+
Takes a type-0x5 input buffer containing an array of "nn::ns::ApplicationRightsOnServer". Returns an output Event handle and an [[#IAsyncResult]].
   −
=== IECommerceInterface===
+
==== DeprecatedRequestAssignRightsToResume ====
This is "nn::ns::detail::IECommerceInterface".
+
Takes an input u64 "nn::ns::RightsEnvironmentHandle" and an [[Account_services#Uid|Uid]]. Returns an output Event handle and an [[#IAsyncResult]].
 +
 
 +
==== VerifyActivatedRightsOwners ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". No output.
 +
 
 +
==== DeprecatedGetApplicationRightsStatus ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". Returns a bool "nn::ns::ApplicationRightsStatus".
 +
 
 +
==== RequestPrefetchForDynamicRights ====
 +
Takes an input [[Account_services#Uid|Uid]]. Returns an output Event handle and an [[#IAsyncResult]].
 +
 
 +
==== GetDynamicRightsState ====
 +
No input. Returns a bool "nn::ns::DynamicRightsState".
 +
 
 +
==== RequestApplicationRightsOnServerToResume ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". Returns an output Event handle and an [[#IAsyncValue]].
 +
 
 +
==== RequestAssignRightsToResume ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". Returns an output Event handle and an [[#IAsyncResult]].
 +
 
 +
==== GetActivatedRightsUsers ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". Returns a bool, an u32 and a type-0x6 output buffer containing an array of [[Account_services#Uid|Uid]].
 +
 
 +
==== GetApplicationRightsStatus ====
 +
Takes an input "nn::ns::RightsEnvironmentHandle". Returns 2 bools "nn::ns::ApplicationRightsStatus" and "nn::ns::ApplicationLicenseType".
 +
 
 +
==== GetRunningApplicationStatus ====
 +
Takes an input u64 "nn::ns::RightsEnvironmentHandle". Returns an u32 "nn::ns::RunningApplicationStatus".
 +
 
 +
=== IECommerceInterface===
 +
This is "nn::ns::detail::IECommerceInterface".
    
This was added with [4.0.0+].
 
This was added with [4.0.0+].
Line 1,569: Line 1,736:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || RequestLinkDevice || Takes a total of 0x10-bytes of input, returns an [[#IAsyncResult]].
+
| 0 || [[#RequestLinkDevice]]
 
|-
 
|-
| 1 || [6.0.0+] RequestCleanupAllPreInstalledApplications || No input, returns an [[#IAsyncResult]].
+
| 1 || [6.0.0+] [[#RequestCleanupAllPreInstalledApplications]]
 
|-
 
|-
| 2 || [6.0.0+] RequestCleanupPreInstalledApplication || Takes a total of 0x8-bytes of input, returns an [[#IAsyncResult]].
+
| 2 || [6.0.0+] [[#RequestCleanupPreInstalledApplication]]
 
|-
 
|-
| 3 || [6.0.0+] RequestSyncRights || No input, returns an [[#IAsyncResult]].
+
| 3 || [6.0.0+] [[#RequestSyncRights]]
 
|-
 
|-
| 4 || [6.0.0+] RequestUnlinkDevice || Takes a total of 0x10-bytes of input, returns an [[#IAsyncResult]].
+
| 4 || [6.0.0+] [[#RequestUnlinkDevice]]
 
|-
 
|-
| 5 || [6.1.0+] RequestRevokeAllELicense || Takes a total of 0x10-bytes of input, returns an [[#IAsyncResult]].
+
| 5 || [6.1.0+] [[#RequestRevokeAllELicense]]
 
|-
 
|-
| 6 || [9.0.0+] RequestSyncRightsBasedOnAssignedELicenses ||
+
| 6 || [9.0.0+] [[#RequestSyncRightsBasedOnAssignedELicenses]]
 
|}
 
|}
 +
 +
==== RequestLinkDevice ====
 +
Takes an input [[Account_services#Uid|Uid]], returns an output Event handle and an [[#IAsyncResult]].
 +
 +
See [[#RequestApplicationUpdateInfo]] regarding nifm.
 +
 +
==== RequestCleanupAllPreInstalledApplications ====
 +
No input, returns an output Event handle and an [[#IAsyncResult]].
 +
 +
==== RequestCleanupPreInstalledApplication ====
 +
Takes an input [[NCM_services#ApplicationId|ApplicationId]], returns an output Event handle and an [[#IAsyncResult]].
 +
 +
==== RequestSyncRights ====
 +
No input, returns an output Event handle and an [[#IAsyncResult]].
 +
 +
==== RequestUnlinkDevice ====
 +
Takes an input [[Account_services#Uid|Uid]], returns an output Event handle and an [[#IAsyncResult]].
 +
 +
See [[#RequestApplicationUpdateInfo]] regarding nifm.
 +
 +
==== RequestRevokeAllELicense ====
 +
Takes an input [[Account_services#Uid|Uid]], returns an output Event handle and an [[#IAsyncResult]].
 +
 +
==== RequestSyncRightsBasedOnAssignedELicenses ====
 +
No input, returns an output Event handle and an [[#IAsyncResult]].
    
=== IFactoryResetInterface ===
 
=== IFactoryResetInterface ===
Line 1,593: Line 1,785:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 100 || ResetToFactorySettings
+
| 100 || [[#ResetToFactorySettings]]
 
|-
 
|-
| 101 || ResetToFactorySettingsWithoutUserSaveData
+
| 101 || [[#ResetToFactorySettingsWithoutUserSaveData]]
 
|-
 
|-
| 102 || ResetToFactorySettingsForRefurbishment
+
| 102 || [[#ResetToFactorySettingsForRefurbishment]]
 
|-
 
|-
| 103 || [9.1.0+] ResetToFactorySettingsWithPlatformRegion
+
| 103 || [9.1.0+] [[#ResetToFactorySettingsWithPlatformRegion]]
 
|-
 
|-
| 104 || [9.1.0+] ResetToFactorySettingsWithPlatformRegionAuthentication
+
| 104 || [9.1.0+] [[#ResetToFactorySettingsWithPlatformRegionAuthentication]]
 +
|-
 +
| 105 || [10.0.0+] [[#RequestResetToFactorySettingsSecurely]]
 +
|-
 +
| 106 || [10.0.0+] [[#RequestResetToFactorySettingsWithPlatformRegionAuthenticationSecurely]]
 +
|}
 +
 
 +
==== ResetToFactorySettings ====
 +
No input/output.
 +
 
 +
As of [9.1.0] this is the only [[#IFactoryResetInterface]] cmd used by [[qlaunch]].
 +
 
 +
==== ResetToFactorySettingsWithoutUserSaveData ====
 +
No input/output.
 +
 
 +
==== ResetToFactorySettingsForRefurbishment ====
 +
No input/output.
 +
 
 +
==== ResetToFactorySettingsWithPlatformRegion ====
 +
No input/output.
 +
 
 +
==== ResetToFactorySettingsWithPlatformRegionAuthentication ====
 +
No input/output.
 +
 
 +
==== RequestResetToFactorySettingsSecurely ====
 +
Takes a total of 8-bytes of input, a handle, returns an output [[#IAsyncValueAndProgress]] and a handle.
 +
 
 +
==== RequestResetToFactorySettingsWithPlatformRegionAuthenticationSecurely ====
 +
Takes a total of 0x10-bytes of input, a handle, returns an output [[#IAsyncValueAndProgress]] and a handle.
 +
 
 +
===== IAsyncValueAndProgress =====
 +
This is "nn::ns::detail::IAsyncValueAndProgress".
 +
 
 +
This was added with [10.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetSize
 +
|-
 +
| 1 || Get
 +
|-
 +
| 2 || Cancel
 +
|-
 +
| 3 || GetErrorContext
 +
|-
 +
| 4 || GetProgress
 
|}
 
|}
   Line 1,853: Line 2,092:     
* Uses ListSystemUpdateTask again, then [[NIM_services|nim]] IsExFatDriverIncluded. Runs ExFat handling when the output flag is set.
 
* Uses ListSystemUpdateTask again, then [[NIM_services|nim]] IsExFatDriverIncluded. Runs ExFat handling when the output flag is set.
* On newer system-versions, this uses [[NIM_services|nim]] GetSystemUpdateTaskInfo then on success uses data from there to save a SystemPlayReport when a state flag is set (by default it's not set).
+
* On newer system-versions, this uses [[NIM_services|nim]] GetSystemUpdateTaskInfo then on success uses data from there to save a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set.
 
** The EventId is "systemupdate_dl_throughput" with ApplicationId 0100000000001018.
 
** The EventId is "systemupdate_dl_throughput" with ApplicationId 0100000000001018.
** The following fields are added to the report, see [[NIM_services#SystemUpdateTaskInfo|nim SystemUpdateTaskInfo]]: "ContentMetaId", "Version", "DownloadSize", and "ThroughputKBps",
+
** The following fields are added to the report, see [[NIM_services#SystemUpdateTaskInfo|nim SystemUpdateTaskInfo]]: "ContentMetaId", "Version", "DownloadSize", and "ThroughputKBps".
 
* On newer system-versions, this saves another SystemPlayReport when a state flag is set (same flag mentioned above).
 
* On newer system-versions, this saves another SystemPlayReport when a state flag is set (same flag mentioned above).
 
** The EventId is "systemupdate_pass" with ApplicationId 0100000000001021.
 
** The EventId is "systemupdate_pass" with ApplicationId 0100000000001021.
Line 1,942: Line 2,181:  
** Uses [[NIM_services|nim]] cmd72, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Uses [[NIM_services|nim]] cmd72, returning the Result on failure. Waits for the IAsyncResult operation from this to finish, then uses the Get cmd to get the output Result.
 
** Handles cleanup and returns.
 
** Handles cleanup and returns.
* On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set.
+
* On success, this loads various data which is then used for saving a SystemPlayReport when the cached [[System_Settings|system-setting]] "systemreport!enabled" is set.
 
** The EventId is "receive_system_update" with ApplicationId <NS ProgramId>.
 
** The EventId is "receive_system_update" with ApplicationId <NS ProgramId>.
 +
** This report has the following fields:
 +
*** "SourceSystemUpdateId"
 +
*** "DestinationSystemUpdateId"
 +
*** "SourceSystemUpdateVersion"
 +
*** "DestinationSystemUpdateVersion"
 +
*** "SenderFirmwareVariationId"
 +
*** "ReceiverFirmwareVariationId"
 +
*** "SenderPlatformRegion"
 +
*** "ReceiverPlatformRegion"
 +
*** "SenderHasExFat"
 +
*** "ReceiverHasExFat"
 +
*** "Size"
 +
*** "ThroughputKBps"
    
=== GetReceiveProgress ===
 
=== GetReceiveProgress ===
Line 2,018: Line 2,270:  
= ns:dev =
 
= ns:dev =
 
This is "nn::ns::detail::IDevelopInterface".
 
This is "nn::ns::detail::IDevelopInterface".
 +
 +
[10.0.0+] Some of these cmds were replaced by the [[PGL_services|pgl]] system module.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 2,023: Line 2,277:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#LaunchProgram]]
+
| 0 || [1.0.0-9.2.0] [[#LaunchProgram]]
 
|-
 
|-
 
| 1 || [[#TerminateProcess]]
 
| 1 || [[#TerminateProcess]]
 
|-
 
|-
| 2 || [[#TerminateProgram]]
+
| 2 || [1.0.0-9.2.0] [[#TerminateProgram]]
 
|-
 
|-
| 4 || [[#GetShellEvent]]
+
| 4 || [1.0.0-9.2.0] [[#GetShellEvent]]
 
|-
 
|-
| 5 || [[#GetShellEventInfo]]
+
| 5 || [1.0.0-9.2.0] [[#GetShellEventInfo]]
 
|-
 
|-
 
| 6 || [[#TerminateApplication]]
 
| 6 || [[#TerminateApplication]]
 
|-
 
|-
| 7 || [[#PrepareLaunchProgramFromHost]]
+
| 7 || [1.0.0-9.2.0] [[#PrepareLaunchProgramFromHost]]
 
|-
 
|-
| 8 || [[#LaunchApplicationForDevelop]]
+
| 8 || [10.0.0+] [[#LaunchApplicationFromHost]] ([1.0.0-9.2.0] [[#LaunchApplicationForDevelop]])
 
|-
 
|-
 
| 9 || [[#LaunchApplicationWithStorageIdForDevelop]]
 
| 9 || [[#LaunchApplicationWithStorageIdForDevelop]]
 
|-
 
|-
| 10 || [6.0.0-8.1.0] IsSystemMemoryResourceLimitBoosted
+
| 10 || [6.0.0-8.1.0] [[#IsSystemMemoryResourceLimitBoosted]]
 
|-
 
|-
| 11 || [6.0.0+] GetRunningApplicationProcessIdForDevelop
+
| 11 || [6.0.0+] [[#GetRunningApplicationProcessIdForDevelop]]
 
|-
 
|-
| 12 || [6.0.0+] SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop
+
| 12 || [6.0.0+] [[#SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop]]
 
|-
 
|-
 
| 13 || [9.0.0+] [[#CreateApplicationResourceForDevelop]]
 
| 13 || [9.0.0+] [[#CreateApplicationResourceForDevelop]]
 
|-
 
|-
 
| 14 || [9.0.0+] [[#IsPreomiaForDevelop]]
 
| 14 || [9.0.0+] [[#IsPreomiaForDevelop]]
 +
|-
 +
| 15 || [10.0.0+] [[#GetApplicationProgramIdFromHost]]
 
|}
 
|}
   Line 2,068: Line 2,324:     
== TerminateApplication ==
 
== TerminateApplication ==
Calls "pm:shell" [[Process_Manager_services#pm:shell|GetApplicationProcessIdForShell]] and sends PID to [[Process_Manager_services#pm:shell|TerminateProcess]].
+
Calls "pm:shell" [[Process_Manager_services#pm:shell|GetApplicationProcessIdForShell]] and sends the ProcessId to [[Process_Manager_services#pm:shell|TerminateProcess]].
    
== PrepareLaunchProgramFromHost ==
 
== PrepareLaunchProgramFromHost ==
Line 2,076: Line 2,332:     
== LaunchApplicationForDevelop ==
 
== LaunchApplicationForDevelop ==
Takes an input u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]] and [[NCM_services#ApplicationId|ApplicationId]], returns an output u64 PID.
+
Takes an input u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]] and [[NCM_services#ApplicationId|ApplicationId]], returns an output u64 ProcessId.
   −
Same as LaunchApplicationWithStorageId except the last two params passed to the internal vtable funcptr call are value 0x6, instead of from the command input.
+
Same as [[#LaunchApplicationWithStorageIdForDevelop]] except the last two params passed to the internal vtable funcptr call are value 0x6, instead of from the command input.
 +
 
 +
== LaunchApplicationFromHost ==
 +
Takes an input u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]] and a type-0x5 input buffer containing the [[Filesystem_services|ContentPath]]. Returns an output u64 ProcessId.
    
== LaunchApplicationWithStorageIdForDevelop ==
 
== LaunchApplicationWithStorageIdForDevelop ==
Takes 2 input u8s, an u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]], and an [[NCM_services#ApplicationId|ApplicationId]]. Returns an output u64 PID.
+
Takes 2 input u8 [[NCM_services#StorageId|StorageIds]], an u32 [[Process_Manager_services#LaunchFlags|LaunchFlags]], and an [[NCM_services#ApplicationId|ApplicationId]]. Returns an output u64 ProcessId.
    
Launches an application title which is registered with NS.
 
Launches an application title which is registered with NS.
 +
 +
== IsSystemMemoryResourceLimitBoosted ==
 +
No input. Returns a bool.
 +
 +
== GetRunningApplicationProcessIdForDevelop ==
 +
Returns an output u64 ProcessId.
 +
 +
== SetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop ==
 +
Takes an input bool. No output.
    
== CreateApplicationResourceForDevelop ==
 
== CreateApplicationResourceForDevelop ==
Takes an input u32 (1 = Preomia). Returns an [[#IApplicationResource]].
+
Takes an input u32 (1 = Preomia/MicroApplication). Returns an [[#IApplicationResource]].
    
== IsPreomiaForDevelop ==
 
== IsPreomiaForDevelop ==
Takes an u64 [[NCM_services#ProgramId|ProgramId]]. Returns a bool.
+
Takes an input u64 [[NCM_services#ProgramId|ProgramId]]. Returns a bool.
 +
 
 +
== GetApplicationProgramIdFromHost ==
 +
Takes a type-0x5 input buffer containing the [[Filesystem_services|ContentPath]]. Returns an u64 [[NCM_services#ProgramId|ProgramId]].
    
= VersionListData =
 
= VersionListData =
Line 2,098: Line 2,369:     
This is an u8. [[qlaunch]] just checks whether this is 0.
 
This is an u8. [[qlaunch]] just checks whether this is 0.
 +
 +
= ApplicationOccupiedSize =
 +
This is "nn::ns::ApplicationOccupiedSize". This is a 0x80-byte struct.
 +
 +
= ProgressForDeleteUserSaveDataAll =
 +
This is "nn::ns::detail::ProgressForDeleteUserSaveDataAll". This is a 0x28-byte struct.
    
= ApplicationViewDeprecated =
 
= ApplicationViewDeprecated =
Line 2,325: Line 2,602:  
|-
 
|-
 
| 0x1A || 0x6 || Unknown
 
| 0x1A || 0x6 || Unknown
 +
|}
 +
 +
= DownloadTaskStatus =
 +
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]]
71

edits

Navigation menu