Line 6: |
Line 6: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || CreateSystemUpdateTask | + | | 0 || [[#CreateSystemUpdateTask]] |
| |- | | |- |
| | 1 || [[#DestroySystemUpdateTask]] | | | 1 || [[#DestroySystemUpdateTask]] |
Line 14: |
Line 14: |
| | 3 || RequestSystemUpdateTaskRun | | | 3 || RequestSystemUpdateTaskRun |
| |- | | |- |
− | | 4 || GetSystemUpdateTaskInfo | + | | 4 || [[#GetSystemUpdateTaskInfo]] |
| |- | | |- |
− | | 5 || CommitSystemUpdateTask | + | | 5 || [[#CommitSystemUpdateTask]] |
| |- | | |- |
| | 6 || CreateNetworkInstallTask | | | 6 || CreateNetworkInstallTask |
Line 26: |
Line 26: |
| | 9 || RequestNetworkInstallTaskRun | | | 9 || RequestNetworkInstallTaskRun |
| |- | | |- |
− | | 10 || GetNetworkInstallTaskInfo | + | | 10 || [[#GetNetworkInstallTaskInfo]] |
| |- | | |- |
| | 11 || CommitNetworkInstallTask | | | 11 || CommitNetworkInstallTask |
Line 42: |
Line 42: |
| | 18 || AddNetworkInstallTaskContentMeta | | | 18 || AddNetworkInstallTaskContentMeta |
| |- | | |- |
− | | 19 || GetDownloadedSystemDataPath | + | | 19 || [[#GetDownloadedSystemDataPath]] |
| |- | | |- |
| | 20 || CalculateNetworkInstallTaskRequiredSize | | | 20 || CalculateNetworkInstallTaskRequiredSize |
| |- | | |- |
− | | 21 || IsExFatDriverIncluded | + | | 21 || [[#IsExFatDriverIncluded]] |
| |- | | |- |
| | 22 || GetBackgroundDownloadStressTaskInfo | | | 22 || GetBackgroundDownloadStressTaskInfo |
Line 74: |
Line 74: |
| | 34 || [2.0.0+] RequestApplyDeltaTaskRun | | | 34 || [2.0.0+] RequestApplyDeltaTaskRun |
| |- | | |- |
− | | 35 || [2.0.0+] GetApplyDeltaTaskInfo | + | | 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]] |
| |- | | |- |
| | 36 || [2.0.0+] ListApplyDeltaTask | | | 36 || [2.0.0+] ListApplyDeltaTask |
Line 203: |
Line 203: |
| |- | | |- |
| | 99 || [7.0.0+] | | | 99 || [7.0.0+] |
| + | |- |
| + | | 100 || [9.0.0+] |
| + | |- |
| + | | 101 || [9.0.0+] |
| + | |- |
| + | | 102 || [9.0.0+] |
| + | |- |
| + | | 103 || [9.0.0+] |
| + | |- |
| + | | 104 || [9.0.0+] |
| + | |- |
| + | | 105 || [9.0.0+] |
| + | |- |
| + | | 106 || [9.0.0+] |
| + | |} |
| + | |
| + | [5.0.0+] RequestGameCardRegistrationStatus/RequestRegisterGameCard removed 8-bytes of input, and now takes an additional type-0x5 input buffer. |
| + | |
| + | [8.0.0+] Cmd76 now takes an additional 0x8-bytes of input. |
| + | |
| + | == CreateSystemUpdateTask == |
| + | Takes an input u32 firmware_variation, an u32 '''unk''', an input 0x10-byte struct, returns an output [[#SystemUpdateTask]]. |
| + | |
| + | Official sw sets '''unk''' to: <code>unk = inflag & 1 ? 0xC : 0x4</code>. |
| + | |
| + | Structure of the input struct: |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x8 || Unknown |
| + | |- |
| + | | 0x8 || 0x4 || Unknown |
| + | |- |
| + | | 0xC || 0x1 || Unknown |
| + | |- |
| + | | 0xD || 0x1 || Unknown |
| + | |- |
| + | | 0xE || 0x2 || Padding? |
| |} | | |} |
| | | |
| == DestroySystemUpdateTask == | | == DestroySystemUpdateTask == |
− | Takes a 0x10-byte input struct, from the output of ListSystemUpdateTask. | + | Takes an input [[#SystemUpdateTask]], no output. |
| | | |
| == ListSystemUpdateTask == | | == ListSystemUpdateTask == |
− | Takes a type-0x6 output buffer, for an array of 0x10-byte entries. Returns an u32 for total output entries. | + | Takes a type-0x6 output buffer, for an array of [[#SystemUpdateTask]]. Returns an u32 for total output entries. |
| + | |
| + | == GetSystemUpdateTaskInfo == |
| + | Takes an input [[#SystemUpdateTask]], returns an output [[#SystemUpdateTaskInfo]]. |
| + | |
| + | == CommitSystemUpdateTask == |
| + | Takes an input [[#SystemUpdateTask]], no output. |
| + | |
| + | == GetNetworkInstallTaskInfo == |
| + | Takes an input [[#NetworkInstallTask]], returns an output [[#NetworkInstallTaskInfo]]. |
| + | |
| + | == GetDownloadedSystemDataPath == |
| + | Takes an input u64 titleID, a [[#SystemUpdateTask]], and an type-0x16 output buffer containing the [[Filesystem_services|ContentPath]]. |
| + | |
| + | Gets the FS ContentPath for the specified task and title. |
| + | |
| + | == IsExFatDriverIncluded == |
| + | Takes an input [[#SystemUpdateTask]], returns an output u8 bool flag. |
| + | |
| + | == GetApplyDeltaTaskInfo == |
| + | Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]]. |
| + | |
| + | == SystemUpdateTask == |
| + | This is a 0x10-byte struct. |
| + | |
| + | == SystemUpdateTaskInfo == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x1 || Status |
| + | |- |
| + | | 0x1 || 0x7 || ? |
| + | |- |
| + | | 0x8 || 0x8 || Unknown |
| + | |- |
| + | | 0x10 || 0x8 || DownloadSize |
| + | |- |
| + | | 0x18 || 0x8 || ContentMetaId |
| + | |- |
| + | | 0x20 || 0x4 || Version |
| + | |- |
| + | | 0x24 || 0x4 || ? |
| + | |- |
| + | | 0x28 || 0x8 || Unknown |
| + | |- |
| + | | 0x30 || 0x8 || Unknown |
| + | |- |
| + | | 0x38 || 0x8 || ? |
| + | |} |
| + | |
| + | This is a 0x28-byte struct. [3.0.0+] This is a 0x38-byte struct. [5.0.0+] This is a 0x40-byte struct. |
| + | |
| + | The 0x10-bytes at +0x8 are returned by [[NS_Services#GetDownloadProgress]]. |
| + | |
| + | The two u64s at +0x28/+0x30 are used by [[NS_Services|NS]] to calculate "ThroughputKBps" for a SystemPlayReport. |
| + | |
| + | == NetworkInstallTask == |
| + | This is a 0x10-byte struct. |
| + | |
| + | == NetworkInstallTaskInfo == |
| + | This is a 0x28-byte struct. [3.0.0+] This is a 0x40-byte struct. |
| + | |
| + | == ApplyDeltaTask == |
| + | This is a 0x10-byte struct. |
| | | |
− | Doesn't return anything on a v2.1 system where sysupdate domains are blocked.
| + | == ApplyDeltaTaskInfo == |
| + | This is a 0x20-byte struct. [3.0.0+] This is a 0x30-byte struct. |
| | | |
| = nim:shp = | | = nim:shp = |
Line 222: |
Line 330: |
| | 0 || RequestDeviceAuthenticationToken | | | 0 || RequestDeviceAuthenticationToken |
| |- | | |- |
− | | 1 || RequestCachedDeviceAuthenticationToken | + | | 1 || [3.0.0+] RequestCachedDeviceAuthenticationToken |
| |- | | |- |
| | 100 || RequestRegisterDeviceAccount | | | 100 || RequestRegisterDeviceAccount |
Line 236: |
Line 344: |
| | 105 || RequestTransferDeviceAccount | | | 105 || RequestTransferDeviceAccount |
| |- | | |- |
− | | 106 || RequestSyncRegistration | + | | 106 || [3.0.0+] RequestSyncRegistration |
| |- | | |- |
− | | 107 || IsOwnDeviceId | + | | 107 || [3.0.0+] IsOwnDeviceId |
| |- | | |- |
| | 200 || RequestRegisterNotificationToken | | | 200 || RequestRegisterNotificationToken |
Line 250: |
Line 358: |
| | 303 || HasDeviceLink | | | 303 || HasDeviceLink |
| |- | | |- |
− | | 304 || RequestUnlinkDeviceAll | + | | 304 || [4.0.0+] RequestUnlinkDeviceAll |
| |- | | |- |
− | | 305 || RequestCreateVirtualAccount | + | | 305 || [4.0.0+] RequestCreateVirtualAccount |
| |- | | |- |
− | | 306 || RequestDeviceLinkStatus | + | | 306 || [4.0.0+] RequestDeviceLinkStatus |
| |- | | |- |
| | 400 || GetAccountByVirtualAccount | | | 400 || GetAccountByVirtualAccount |
| |- | | |- |
− | | 401 || [6.0.0+] | + | | 401 || [6.0.0+] GetVirtualAccount |
| |- | | |- |
− | | 500 || RequestSyncTicket | + | | 500 || RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket) |
| |- | | |- |
| | 501 || RequestDownloadTicket | | | 501 || RequestDownloadTicket |
| |- | | |- |
− | | 502 || [4.0.0+] RequestDownloadTicketForPrepurchasedContents. [6.0.0+]: Now takes an additional 4-bytes of input. | + | | 502 || [4.0.0+] [[#RequestDownloadTicketForPrepurchasedContents]] |
| + | |- |
| + | | 503 || [9.0.0+] RequestSyncTicket |
| + | |- |
| + | | 504 || [9.0.0+] RequestDownloadTicketForPrepurchasedContents2 |
| |} | | |} |
| + | |
| + | == RequestDownloadTicketForPrepurchasedContents == |
| + | [6.0.0+] Now takes an additional 4-bytes of input. |
| | | |
| = nim:eca = | | = nim:eca = |
| This is "nn::nim::detail::IShopServiceAccessServerInterface". | | This is "nn::nim::detail::IShopServiceAccessServerInterface". |
| + | |
| + | This was added with [5.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 285: |
Line 402: |
| == IShopServiceAccessServer == | | == IShopServiceAccessServer == |
| This is "nn::nim::detail::IShopServiceAccessServer". | | This is "nn::nim::detail::IShopServiceAccessServer". |
| + | |
| + | This was added with [5.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 295: |
Line 414: |
| === IShopServiceAccessor === | | === IShopServiceAccessor === |
| This is "nn::nim::detail::IShopServiceAccessor". | | This is "nn::nim::detail::IShopServiceAccessor". |
| + | |
| + | This was added with [5.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 305: |
Line 426: |
| ==== IShopServiceAsync ==== | | ==== IShopServiceAsync ==== |
| This is "nn::nim::detail::IShopServiceAsync". | | This is "nn::nim::detail::IShopServiceAsync". |
| + | |
| + | This was added with [5.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 346: |
Line 469: |
| | 0 || OpenEnsureNetworkClockAvailabilityService | | | 0 || OpenEnsureNetworkClockAvailabilityService |
| |- | | |- |
− | | 100 || SuspendAutonomicTimeCorrection | + | | 100 || [3.0.0+] SuspendAutonomicTimeCorrection |
| |- | | |- |
− | | 101 || ResumeAutonomicTimeCorrection | + | | 101 || [3.0.0+] ResumeAutonomicTimeCorrection |
| |} | | |} |
| | | |
Line 370: |
Line 493: |
| | 4 || IsProcessing | | | 4 || IsProcessing |
| |- | | |- |
− | | 5 || GetServerTime | + | | 5 || [3.0.0+] GetServerTime |
| + | |} |
| + | |
| + | = IAsyncValue = |
| + | This is "nn::nim::detail::IAsyncValue". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || GetSize |
| + | |- |
| + | | 1 || Get |
| + | |- |
| + | | 2 || Cancel |
| + | |- |
| + | | 3 || [4.0.0+] GetErrorContext |
| + | |} |
| + | |
| + | = IAsyncResult = |
| + | This is "nn::nim::detail::IAsyncResult". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || Get |
| + | |- |
| + | | 1 || Cancel |
| + | |- |
| + | | 2 || [4.0.0+] GetErrorContext |
| + | |} |
| + | |
| + | = IAsyncProgressResult = |
| + | This is "nn::nim::detail::IAsyncProgressResult". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || Get |
| + | |- |
| + | | 1 || Cancel |
| + | |- |
| + | | 2 || GetProgress |
| + | |- |
| + | | 3 || [4.0.0+] GetErrorContext |
| + | |} |
| + | |
| + | = IAsyncData = |
| + | This is "nn::nim::detail::IAsyncData". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |- |
| + | | 3 || |
| + | |- |
| + | | 4 || |
| + | |- |
| + | | 5 || [4.0.0+] |
| |} | | |} |
| | | |
| [[Category:Services]] | | [[Category:Services]] |