NIM services: Difference between revisions
| No edit summary | No edit summary | ||
| Line 224: | Line 224: | ||
| == CreateSystemUpdateTask == | == CreateSystemUpdateTask == | ||
| Takes an input u32 firmware_variation, an u32 '''unk''',  | Takes an input u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#SystemUpdateTask]]. | ||
| Official sw sets '''unk''' to: <code>unk = inflag & 1 ? 0xC : 0x4</code>. | Official sw sets '''unk''' to: <code>unk = inflag & 1 ? 0xC : 0x4</code>. | ||
| == DestroySystemUpdateTask == | == DestroySystemUpdateTask == | ||
| Line 273: | Line 255: | ||
| == Cmd69 == | == Cmd69 == | ||
| Takes a  | Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#ReceiveSystemUpdateTask]]. | ||
| Official sw sets '''unk''' to: <code>unk = stateflag==0 ? 0x4 : 0xC</code>. The port/Ipv4Address params originate from the [[NS_Services#RequestReceiveSystemUpdate|RequestReceiveSystemUpdate]] params. | |||
| This is the Receive version of [[#CreateSystemUpdateTask]]. | This is the Receive version of [[#CreateSystemUpdateTask]]. | ||
Revision as of 21:04, 28 October 2019
nim
This is "nn::nim::detail::INetworkInstallManager".
| Cmd | Name | 
|---|---|
| 0 | #CreateSystemUpdateTask | 
| 1 | #DestroySystemUpdateTask | 
| 2 | #ListSystemUpdateTask | 
| 3 | RequestSystemUpdateTaskRun | 
| 4 | #GetSystemUpdateTaskInfo | 
| 5 | #CommitSystemUpdateTask | 
| 6 | CreateNetworkInstallTask | 
| 7 | DestroyNetworkInstallTask | 
| 8 | ListNetworkInstallTask | 
| 9 | RequestNetworkInstallTaskRun | 
| 10 | #GetNetworkInstallTaskInfo | 
| 11 | CommitNetworkInstallTask | 
| 12 | RequestLatestSystemUpdateMeta | 
| 14 | ListApplicationNetworkInstallTask | 
| 15 | ListNetworkInstallTaskContentMeta | 
| 16 | RequestLatestVersion | 
| 17 | SetNetworkInstallTaskAttribute | 
| 18 | AddNetworkInstallTaskContentMeta | 
| 19 | #GetDownloadedSystemDataPath | 
| 20 | CalculateNetworkInstallTaskRequiredSize | 
| 21 | #IsExFatDriverIncluded | 
| 22 | GetBackgroundDownloadStressTaskInfo | 
| 23 | [2.0.0+] RequestDeviceAuthenticationToken | 
| 24 | [2.0.0+] RequestGameCardRegistrationStatus | 
| 25 | [2.0.0+] RequestRegisterGameCard | 
| 26 | [2.0.0+] RequestRegisterNotificationToken | 
| 27 | [2.0.0+] RequestDownloadTaskList | 
| 28 | [2.0.0+] RequestApplicationControl | 
| 29 | [2.0.0+] RequestLatestApplicationControl | 
| 30 | [2.0.0+] RequestVersionList | 
| 31 | [2.0.0+] CreateApplyDeltaTask | 
| 32 | [2.0.0+] DestroyApplyDeltaTask | 
| 33 | [2.0.0+] ListApplicationApplyDeltaTask | 
| 34 | [2.0.0+] RequestApplyDeltaTaskRun | 
| 35 | [2.0.0+] #GetApplyDeltaTaskInfo | 
| 36 | [2.0.0+] ListApplyDeltaTask | 
| 37 | [2.0.0+] CommitApplyDeltaTask | 
| 38 | [2.0.0+] CalculateApplyDeltaTaskRequiredSize | 
| 39 | [2.0.0+] PrepareShutdown | 
| 40 | [2.0.0+] ListApplyDeltaTask2 | 
| 41 | [2.0.0+] ClearNotEnoughSpaceStateOfApplyDeltaTask | 
| 42 | [3.0.0+] | 
| 43 | [3.0.0+] | 
| 44 | [3.0.0+] | 
| 45 | [3.0.0+] | 
| 46 | [3.0.0+] | 
| 47 | [4.0.0+] | 
| 48 | [4.0.0+] | 
| 49 | [4.0.0+] | 
| 50 | [4.0.0+] | 
| 51 | [4.0.0+] | 
| 52 | [4.0.0+] | 
| 53 | [4.0.0+] | 
| 54 | [4.0.0+] | 
| 55 | [4.0.0+] | 
| 56 | [4.0.0+] | 
| 57 | [4.0.0+] | 
| 58 | [4.0.0+] | 
| 59 | [4.0.0+] | 
| 60 | [4.0.0+] | 
| 61 | [4.0.0+] | 
| 62 | [4.0.0+] | 
| 63 | [4.0.0+] | 
| 64 | [4.0.0+] | 
| 65 | [4.0.0+] | 
| 66 | [4.0.0+] | 
| 67 | [4.0.0+] | 
| 68 | [4.0.0+] | 
| 69 | [4.0.0+] | 
| 70 | [4.0.0+] | 
| 71 | [4.0.0+] | 
| 72 | [4.0.0+] | 
| 73 | [4.0.0+] | 
| 74 | [4.0.0+] | 
| 75 | [4.0.0+] | 
| 76 | [4.0.0+] | 
| 77 | [4.0.0+] | 
| 78 | [4.0.0+] | 
| 79 | [4.0.0+] | 
| 80 | [4.0.0+] | 
| 81 | [4.0.0+] | 
| 82 | [4.0.0+] | 
| 83 | [4.0.0+] | 
| 84 | [5.0.0+] | 
| 85 | [5.0.0+] | 
| 86 | [5.0.0+] | 
| 87 | [6.0.0+] | 
| 88 | [6.0.0+] | 
| 89 | [6.0.0+] | 
| 90 | [6.0.0+] | 
| 91 | [6.0.0+] | 
| 92 | [6.0.0+] | 
| 93 | [6.0.0+] | 
| 94 | [6.0.0+] | 
| 95 | [6.0.0+] | 
| 96 | [6.0.0+] | 
| 97 | [6.0.0+] | 
| 98 | [6.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, a ContentMetaKey, returns an output #SystemUpdateTask.
Official sw sets unk to: unk = inflag & 1 ? 0xC : 0x4.
DestroySystemUpdateTask
Takes an input #SystemUpdateTask, no output.
ListSystemUpdateTask
Takes a type-0x6 output buffer, for an array of #SystemUpdateTask. Returns a s32 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 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.
Cmd69
Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, an u32 unk, a ContentMetaKey, returns an output #ReceiveSystemUpdateTask.
Official sw sets unk to: unk = stateflag==0 ? 0x4 : 0xC. The port/Ipv4Address params originate from the RequestReceiveSystemUpdate params.
This is the Receive version of #CreateSystemUpdateTask.
Cmd71
Takes a type-0x6 output buffer, for an array of #ReceiveSystemUpdateTask. Returns a s32 for total output entries.
This is the Receive version of #ListSystemUpdateTask.
Cmd72
Takes an input #ReceiveSystemUpdateTask, returns an output Event and an #IAsyncResult.
This is the Receive version of RequestSystemUpdateTaskRun.
Cmd73
Takes an input #ReceiveSystemUpdateTask, returns an output #ReceiveSystemUpdateTaskInfo.
This is the Receive version of #GetSystemUpdateTaskInfo.
SystemUpdateTask
This is a 0x10-byte struct.
SystemUpdateTaskInfo
| 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 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.
ApplyDeltaTaskInfo
This is a 0x20-byte struct. [3.0.0+] This is a 0x30-byte struct.
ReceiveSystemUpdateTask
This is a 0x10-byte struct.
ReceiveSystemUpdateTaskInfo
This is a 0x38-byte struct.
nim:shp
This is "nn::nim::detail::IShopServiceManager".
| Cmd | Name | 
|---|---|
| 0 | RequestDeviceAuthenticationToken | 
| 1 | [3.0.0+] RequestCachedDeviceAuthenticationToken | 
| 100 | RequestRegisterDeviceAccount | 
| 101 | RequestUnregisterDeviceAccount | 
| 102 | RequestDeviceAccountStatus | 
| 103 | GetDeviceAccountInfo | 
| 104 | RequestDeviceRegistrationInfo | 
| 105 | RequestTransferDeviceAccount | 
| 106 | [3.0.0+] RequestSyncRegistration | 
| 107 | [3.0.0+] IsOwnDeviceId | 
| 200 | RequestRegisterNotificationToken | 
| 300 | RequestUnlinkDevice | 
| 301 | RequestUnlinkDeviceIntegrated | 
| 302 | RequestLinkDevice | 
| 303 | HasDeviceLink | 
| 304 | [4.0.0+] RequestUnlinkDeviceAll | 
| 305 | [4.0.0+] RequestCreateVirtualAccount | 
| 306 | [4.0.0+] RequestDeviceLinkStatus | 
| 400 | GetAccountByVirtualAccount | 
| 401 | [6.0.0+] GetVirtualAccount | 
| 500 | RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket) | 
| 501 | RequestDownloadTicket | 
| 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
This is "nn::nim::detail::IShopServiceAccessServerInterface".
This was added with [5.0.0+].
| Cmd | Name | 
|---|---|
| 0 | CreateServerInterface | 
| 1 | [6.0.0+] RefreshDebugAvailability | 
| 2 | [6.0.0+] ClearDebugResponse | 
| 3 | [6.0.0+] RegisterDebugResponse | 
IShopServiceAccessServer
This is "nn::nim::detail::IShopServiceAccessServer".
This was added with [5.0.0+].
| Cmd | Name | 
|---|---|
| 0 | CreateAccessorInterface | 
IShopServiceAccessor
This is "nn::nim::detail::IShopServiceAccessor".
This was added with [5.0.0+].
| Cmd | Name | 
|---|---|
| 0 | CreateAsyncInterface | 
IShopServiceAsync
This is "nn::nim::detail::IShopServiceAsync".
This was added with [5.0.0+].
| Cmd | Name | 
|---|---|
| 0 | Cancel | 
| 1 | GetSize | 
| 2 | Read | 
| 3 | GetErrorCode | 
| 4 | Request | 
| 5 | Prepare | 
nim:ecas
This is "nn::nim::detail::IShopServiceAccessSystemInterface".
This was added with [7.0.0+].
| Cmd | Name | 
|---|---|
| 0 | RegisterSpecialClient | 
| 1 | UnregisterSpecialClient | 
ntc
This is "nn::ntc::detail::service::IStaticService".
| Cmd | Name | 
|---|---|
| 0 | OpenEnsureNetworkClockAvailabilityService | 
| 100 | [3.0.0+] SuspendAutonomicTimeCorrection | 
| 101 | [3.0.0+] ResumeAutonomicTimeCorrection | 
Network-time-sync uses the "<...>/time" HTTPS URL listed in the below Network section. This just returns an UTC Unix time string.
IEnsureNetworkClockAvailabilityService
This is "nn::ntc::detail::service::IEnsureNetworkClockAvailabilityService".
| Cmd | Name | 
|---|---|
| 0 | StartTask | 
| 1 | GetFinishNotificationEvent | 
| 2 | GetResult | 
| 3 | Cancel | 
| 4 | IsProcessing | 
| 5 | [3.0.0+] GetServerTime | 
IAsyncValue
This is "nn::nim::detail::IAsyncValue".
| Cmd | Name | 
|---|---|
| 0 | GetSize | 
| 1 | Get | 
| 2 | Cancel | 
| 3 | [4.0.0+] GetErrorContext | 
IAsyncResult
This is "nn::nim::detail::IAsyncResult".
| Cmd | Name | 
|---|---|
| 0 | Get | 
| 1 | Cancel | 
| 2 | [4.0.0+] GetErrorContext | 
IAsyncProgressResult
This is "nn::nim::detail::IAsyncProgressResult".
| Cmd | Name | 
|---|---|
| 0 | Get | 
| 1 | Cancel | 
| 2 | GetProgress | 
| 3 | [4.0.0+] GetErrorContext | 
IAsyncData
This is "nn::nim::detail::IAsyncData".
| Cmd | Name | 
|---|---|
| 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | [4.0.0+] |