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]] |