Changes

Jump to navigation Jump to search
5,162 bytes added ,  17:10, 22 March 2022
no edit summary
Line 24: Line 24:  
| 8 || ListNetworkInstallTask
 
| 8 || ListNetworkInstallTask
 
|-
 
|-
| 9 || RequestNetworkInstallTaskRun
+
| 9 || [[#RequestNetworkInstallTaskRun]]
 
|-
 
|-
 
| 10 || [[#GetNetworkInstallTaskInfo]]
 
| 10 || [[#GetNetworkInstallTaskInfo]]
Line 76: Line 76:  
| 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]]
 
| 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]]
 
|-
 
|-
| 36 || [2.0.0+] ListApplyDeltaTask
+
| 36 || [2.0.0+] ListApplyDeltaTaskContentMeta
 
|-
 
|-
 
| 37 || [2.0.0+] CommitApplyDeltaTask
 
| 37 || [2.0.0+] CommitApplyDeltaTask
Line 84: Line 84:  
| 39 || [2.0.0+] PrepareShutdown
 
| 39 || [2.0.0+] PrepareShutdown
 
|-
 
|-
| 40 || [2.0.0+] ListApplyDeltaTask2
+
| 40 || [2.0.0+] ListApplyDeltaTask
 
|-
 
|-
 
| 41 || [2.0.0+] ClearNotEnoughSpaceStateOfApplyDeltaTask
 
| 41 || [2.0.0+] ClearNotEnoughSpaceStateOfApplyDeltaTask
 
|-
 
|-
| 42 || [3.0.0+]
+
| 42 || [3.0.0+] CreateApplyDeltaTaskFromDownloadTask
 
|-
 
|-
| 43 || [3.0.0+]
+
| 43 || [3.0.0+] GetBackgroundApplyDeltaStressTaskInfo
 
|-
 
|-
| 44 || [3.0.0+]
+
| 44 || [3.0.0+] GetApplyDeltaTaskRequiredStorage
 
|-
 
|-
| 45 || [3.0.0+]
+
| 45 || [3.0.0+] CalculateNetworkInstallTaskContentsSize
 
|-
 
|-
| 46 || [3.0.0+]
+
| 46 || [3.0.0+] PrepareShutdownForSystemUpdate
 
|-
 
|-
| 47 || [4.0.0+]
+
| 47 || [4.0.0-9.2.0] FindMaxRequiredApplicationVersionOfTask
 
|-
 
|-
| 48 || [4.0.0+]
+
| 48 || [4.0.0+] CommitNetworkInstallTaskPartially
 
|-
 
|-
| 49 || [4.0.0+]
+
| 49 || [4.0.0+] ListNetworkInstallTaskCommittedContentMeta
 
|-
 
|-
| 50 || [4.0.0+]
+
| 50 || [4.0.0+] ListNetworkInstallTaskNotCommittedContentMeta
 
|-
 
|-
| 51 || [4.0.0+]
+
| 51 || [4.0.0+] FindMaxRequiredSystemVersionOfTask
 
|-
 
|-
| 52 || [4.0.0+]
+
| 52 || [4.0.0+] GetNetworkInstallTaskErrorContext
 
|-
 
|-
| 53 || [4.0.0+]
+
| 53 || [4.0.0+] [[#CreateLocalCommunicationReceiveApplicationTask]]
 
|-
 
|-
| 54 || [4.0.0+]
+
| 54 || [4.0.0+] DestroyLocalCommunicationReceiveApplicationTask
 
|-
 
|-
| 55 || [4.0.0+]
+
| 55 || [4.0.0+] ListLocalCommunicationReceiveApplicationTask
 
|-
 
|-
| 56 || [4.0.0+]
+
| 56 || [4.0.0+] [[#RequestLocalCommunicationReceiveApplicationTaskRun]]
 
|-
 
|-
| 57 || [4.0.0+]
+
| 57 || [4.0.0+] [[#GetLocalCommunicationReceiveApplicationTaskInfo]]
 
|-
 
|-
| 58 || [4.0.0+]
+
| 58 || [4.0.0+] CommitLocalCommunicationReceiveApplicationTask
 
|-
 
|-
| 59 || [4.0.0+]
+
| 59 || [4.0.0+] ListLocalCommunicationReceiveApplicationTaskContentMeta
 
|-
 
|-
| 60 || [4.0.0+]
+
| 60 || [4.0.0+] [[#CreateLocalCommunicationSendApplicationTask]]
 
|-
 
|-
| 61 || [4.0.0+]
+
| 61 || [4.0.0+] [[#RequestLocalCommunicationSendApplicationTaskRun]]
 
|-
 
|-
| 62 || [4.0.0+]
+
| 62 || [4.0.0+] GetLocalCommunicationReceiveApplicationTaskErrorContext
 
|-
 
|-
| 63 || [4.0.0+]
+
| 63 || [4.0.0+] [[#GetLocalCommunicationSendApplicationTaskInfo]]
 
|-
 
|-
| 64 || [4.0.0+]
+
| 64 || [4.0.0+] DestroyLocalCommunicationSendApplicationTask
 
|-
 
|-
| 65 || [4.0.0+]
+
| 65 || [4.0.0+] GetLocalCommunicationSendApplicationTaskErrorContext
 
|-
 
|-
| 66 || [4.0.0+]
+
| 66 || [4.0.0+] CalculateLocalCommunicationReceiveApplicationTaskRequiredSize
 
|-
 
|-
| 67 || [4.0.0+]
+
| 67 || [4.0.0+] [[#ListApplicationLocalCommunicationReceiveApplicationTask]]
 
|-
 
|-
| 68 || [4.0.0+]
+
| 68 || [4.0.0+] [[#ListApplicationLocalCommunicationSendApplicationTask]]
 
|-
 
|-
| 69 || [4.0.0+]
+
| 69 || [4.0.0+] [[#CreateLocalCommunicationReceiveSystemUpdateTask]]
 
|-
 
|-
| 70 || [4.0.0+]
+
| 70 || [4.0.0+] DestroyLocalCommunicationReceiveSystemUpdateTask
 
|-
 
|-
| 71 || [4.0.0+]
+
| 71 || [4.0.0+] [[#ListLocalCommunicationReceiveSystemUpdateTask]]
 
|-
 
|-
| 72 || [4.0.0+]
+
| 72 || [4.0.0+] [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]]
 
|-
 
|-
| 73 || [4.0.0+]
+
| 73 || [4.0.0+] [[#GetLocalCommunicationReceiveSystemUpdateTaskInfo]]
 
|-
 
|-
| 74 || [4.0.0+]
+
| 74 || [4.0.0+] CommitLocalCommunicationReceiveSystemUpdateTask
 
|-
 
|-
| 75 || [4.0.0+]
+
| 75 || [4.0.0+] GetLocalCommunicationReceiveSystemUpdateTaskErrorContext
 
|-
 
|-
| 76 || [4.0.0+]
+
| 76 || [4.0.0+] [[#CreateLocalCommunicationSendSystemUpdateTask]]
 
|-
 
|-
| 77 || [4.0.0+]
+
| 77 || [4.0.0+] [[#RequestLocalCommunicationSendSystemUpdateTaskRun]]
 
|-
 
|-
| 78 || [4.0.0+]
+
| 78 || [4.0.0+] [[#GetLocalCommunicationSendSystemUpdateTaskInfo]]
 
|-
 
|-
| 79 || [4.0.0+]
+
| 79 || [4.0.0+] DestroyLocalCommunicationSendSystemUpdateTask
 
|-
 
|-
| 80 || [4.0.0+]
+
| 80 || [4.0.0+] GetLocalCommunicationSendSystemUpdateTaskErrorContext
 
|-
 
|-
| 81 || [4.0.0+]
+
| 81 || [4.0.0+] [[#ListLocalCommunicationSendSystemUpdateTask]]
 
|-
 
|-
| 82 || [4.0.0+]
+
| 82 || [4.0.0+] GetReceivedSystemDataPath
 
|-
 
|-
| 83 || [4.0.0+]
+
| 83 || [4.0.0+] CalculateApplyDeltaTaskOccupiedSize
 
|-
 
|-
 
| 84 || [5.0.0+]
 
| 84 || [5.0.0+]
 
|-
 
|-
| 85 || [5.0.0+]
+
| 85 || [5.0.0+] ListNetworkInstallTaskContentMetaFromInstallMeta
 
|-
 
|-
| 86 || [5.0.0+]
+
| 86 || [5.0.0+] ListNetworkInstallTaskOccupiedSize
 
|-
 
|-
 
| 87 || [6.0.0+]
 
| 87 || [6.0.0+]
Line 217: Line 217:  
|-
 
|-
 
| 106 || [9.0.0+]
 
| 106 || [9.0.0+]
 +
|-
 +
| 107 || [10.0.0+]
 +
|-
 +
| 108 || [10.0.0+]
 +
|-
 +
| 109 || [10.0.0+]
 +
|-
 +
| 110 || [10.0.0+]
 +
|-
 +
| 111 || [10.0.0+]
 +
|-
 +
| 112 || [10.0.0+]
 +
|-
 +
| 113 || [10.0.0+]
 +
|-
 +
| 114 || [10.0.0+]
 +
|-
 +
| 115 || [10.0.0+]
 +
|-
 +
| 116 || [10.0.0+]
 +
|-
 +
| 117 || [11.0.0+]
 +
|-
 +
| 118 || [10.0.0+]
 +
|-
 +
| 119 || [11.0.0+]
 +
|-
 +
| 120 || [11.0.0+]
 +
|-
 +
| 121 || [10.1.0+]
 +
|-
 +
| 122 || [10.1.0+]
 +
|-
 +
| 123 || [10.1.0+]
 +
|-
 +
| 124 || [11.0.0+]
 +
|-
 +
| 125 || [11.0.0+]
 +
|-
 +
| 126 || [12.0.0+]
 +
|-
 +
| 127 || [12.0.0+]
 +
|-
 +
| 128 || [12.0.0+]
 +
|-
 +
| 129 || [12.0.0+]
 +
|-
 +
| 130 || [13.0.0+]
 +
|-
 +
| 131 || [13.0.0+]
 +
|-
 +
| 132 || [13.0.0+]
 +
|-
 +
| 133 || [13.0.0+]
 +
|-
 +
| 134 || [13.0.0+]
 +
|-
 +
| 135 || [14.0.0+]
 +
|-
 +
| 136 || [14.0.0+]
 +
|-
 +
| 137 || [14.0.0+]
 
|}
 
|}
    
[5.0.0+] RequestGameCardRegistrationStatus/RequestRegisterGameCard removed 8-bytes of input, and now takes an additional type-0x5 input buffer.
 
[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.
+
[8.0.0+] [[#CreateLocalCommunicationSendSystemUpdateTask]] now takes an additional 0x8-bytes of input.
 +
 
 +
[12.0.0+] Cmd92 now returns an [[#IAsyncData]] instead of [[#IAsyncValue]].
    
== CreateSystemUpdateTask ==
 
== CreateSystemUpdateTask ==
Takes an input u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#SystemUpdateTask]].
+
Takes an input u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#SystemUpdateTaskId]].
    
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 ==
Takes an input [[#SystemUpdateTask]], no output.
+
Takes an input [[#SystemUpdateTaskId]], no output.
    
== ListSystemUpdateTask ==
 
== ListSystemUpdateTask ==
Takes a type-0x6 output buffer, for an array of [[#SystemUpdateTask]]. Returns a s32 for total output entries.
+
Takes a type-0x6 output buffer, for an array of [[#SystemUpdateTaskId]]. Returns a s32 for total output entries.
    
== GetSystemUpdateTaskInfo ==
 
== GetSystemUpdateTaskInfo ==
Takes an input [[#SystemUpdateTask]], returns an output [[#SystemUpdateTaskInfo]].
+
Takes an input [[#SystemUpdateTaskId]], returns an output [[#SystemUpdateTaskInfo]].
    
== CommitSystemUpdateTask ==
 
== CommitSystemUpdateTask ==
Takes an input [[#SystemUpdateTask]], no output.
+
Takes an input [[#SystemUpdateTaskId]], no output.
 +
 
 +
== RequestNetworkInstallTaskRun ==
 +
Takes a total of 0x10-bytes of input, returns an output [[#IAsyncResult]] and handle.
 +
 
 +
[13.0.0+] Now takes an additional 1-byte of input.
    
== GetNetworkInstallTaskInfo ==
 
== GetNetworkInstallTaskInfo ==
 
Takes an input [[#NetworkInstallTask]], returns an output [[#NetworkInstallTaskInfo]].
 
Takes an input [[#NetworkInstallTask]], returns an output [[#NetworkInstallTaskInfo]].
 +
 +
[10.0.0+] This now returns a total of 0x48-bytes of output instead of 0x40-bytes.
    
== GetDownloadedSystemDataPath ==
 
== GetDownloadedSystemDataPath ==
Takes an input u64 titleID, a [[#SystemUpdateTask]], and an type-0x16 output buffer containing the [[Filesystem_services|ContentPath]].
+
Takes an input u64 titleID, a [[#SystemUpdateTaskId]], and an type-0x16 output buffer containing the [[Filesystem_services|ContentPath]].
    
Gets the FS ContentPath for the specified task and title.
 
Gets the FS ContentPath for the specified task and title.
    
== IsExFatDriverIncluded ==
 
== IsExFatDriverIncluded ==
Takes an input [[#SystemUpdateTask]], returns an output u8 bool flag.
+
Takes an input [[#SystemUpdateTaskId]], returns an output u8 bool flag.
    
== GetApplyDeltaTaskInfo ==
 
== GetApplyDeltaTaskInfo ==
 
Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]].
 
Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]].
   −
== Cmd53 ==
+
== CreateLocalCommunicationReceiveApplicationTask ==
 
Takes an input [[NCM_services#StorageId|StorageId]], an u16 port, an u32 Ipv4Address, an u32 '''unk''', an u64 <code>nn::ncm::ApplicationId</code>, a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#ReceiveApplicationTask]].
 
Takes an input [[NCM_services#StorageId|StorageId]], an u16 port, an u32 Ipv4Address, an u32 '''unk''', an u64 <code>nn::ncm::ApplicationId</code>, a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#ReceiveApplicationTask]].
   −
This is the ReceiveApplication version of [[#Cmd69]].
+
This is the ReceiveApplication version of [[#CreateLocalCommunicationReceiveSystemUpdateTask]].
    
The wrapper used by official sw passes hard-coded value 0x2 for '''unk'''.
 
The wrapper used by official sw passes hard-coded value 0x2 for '''unk'''.
   −
== Cmd56 ==
+
== RequestLocalCommunicationReceiveApplicationTaskRun ==
 
Takes an input [[#ReceiveApplicationTask]], returns an output Event and an [[#IAsyncResult]].
 
Takes an input [[#ReceiveApplicationTask]], returns an output Event and an [[#IAsyncResult]].
   −
This is the ReceiveApplication version of [[#Cmd72]].
+
This is the ReceiveApplication version of [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]].
   −
== Cmd57 ==
+
== GetLocalCommunicationReceiveApplicationTaskInfo ==
 
Takes an input [[#ReceiveApplicationTask]], returns an output [[#ReceiveApplicationTaskInfo]].
 
Takes an input [[#ReceiveApplicationTask]], returns an output [[#ReceiveApplicationTaskInfo]].
    
This is the ReceiveApplication version of [[#GetSystemUpdateTaskInfo]].
 
This is the ReceiveApplication version of [[#GetSystemUpdateTaskInfo]].
   −
== Cmd60 ==
+
== CreateLocalCommunicationSendApplicationTask ==
 
Takes an input u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, a type-0x5 input buffer containing an array of {unknown}, returns an output [[#SendApplicationTask]].
 
Takes an input u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, a type-0x5 input buffer containing an array of {unknown}, returns an output [[#SendApplicationTask]].
   −
This is the SendApplication version of [[#Cmd69]].
+
This is the SendApplication version of [[#CreateLocalCommunicationReceiveSystemUpdateTask]].
   −
== Cmd61 ==
+
== RequestLocalCommunicationSendApplicationTaskRun ==
 
Takes an input [[#SendApplicationTask]], returns an output Event and an [[#IAsyncResult]].
 
Takes an input [[#SendApplicationTask]], returns an output Event and an [[#IAsyncResult]].
   −
This is the SendApplicationTask version of [[#Cmd72]].
+
This is the SendApplicationTask version of [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]].
   −
== Cmd63 ==
+
== GetLocalCommunicationSendApplicationTaskInfo ==
 
Takes an input [[#SendApplicationTask]], returns an output [[#SendApplicationTaskInfo]].
 
Takes an input [[#SendApplicationTask]], returns an output [[#SendApplicationTaskInfo]].
    
This is the SendApplication version of [[#GetSystemUpdateTaskInfo]].
 
This is the SendApplication version of [[#GetSystemUpdateTaskInfo]].
   −
== Cmd67 ==
+
== ListApplicationLocalCommunicationReceiveApplicationTask ==
 
Takes a type-0x6 output buffer containing an array of [[#ReceiveApplicationTask]] and an input u64 <code>nn::ncm::ApplicationId</code>. Returns a s32 for total output entries.
 
Takes a type-0x6 output buffer containing an array of [[#ReceiveApplicationTask]] and an input u64 <code>nn::ncm::ApplicationId</code>. Returns a s32 for total output entries.
   −
This is the ReceiveApplication version of [[#Cmd71]].
+
This is the ReceiveApplication version of [[#ListLocalCommunicationReceiveSystemUpdateTask]].
   −
== Cmd68 ==
+
== ListApplicationLocalCommunicationSendApplicationTask ==
 
Takes a type-0x6 output buffer containing an array of [[#SendApplicationTask]] and an input u64 <code>nn::ncm::ApplicationId</code>. Returns a s32 for total output entries.
 
Takes a type-0x6 output buffer containing an array of [[#SendApplicationTask]] and an input u64 <code>nn::ncm::ApplicationId</code>. Returns a s32 for total output entries.
   −
This is the SendApplication version of [[#Cmd71]].
+
This is the SendApplication version of [[#ListLocalCommunicationReceiveSystemUpdateTask]].
   −
== Cmd69 ==
+
== CreateLocalCommunicationReceiveSystemUpdateTask ==
 
Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#ReceiveSystemUpdateTask]].
 
Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, an u32 '''unk''', a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#ReceiveSystemUpdateTask]].
   Line 324: Line 395:  
* All error handling following successful sockfd creation via socket() will also close the socket, when certain errors occur.
 
* All error handling following successful sockfd creation via socket() will also close the socket, when certain errors occur.
   −
== Cmd71 ==
+
== ListLocalCommunicationReceiveSystemUpdateTask ==
 
Takes a type-0x6 output buffer, for an array of [[#ReceiveSystemUpdateTask]]. Returns a s32 for total output entries.
 
Takes a type-0x6 output buffer, for an array of [[#ReceiveSystemUpdateTask]]. Returns a s32 for total output entries.
    
This is the ReceiveSystemUpdate version of [[#ListSystemUpdateTask]].
 
This is the ReceiveSystemUpdate version of [[#ListSystemUpdateTask]].
   −
== Cmd72 ==
+
== RequestLocalCommunicationReceiveSystemUpdateTaskRun ==
 
Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].
 
Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].
   Line 336: Line 407:  
This creates the [[#IAsyncResult]] object + the async [[#Contents_Delivery|thread]] which handles the [[#IAsyncResult]] operation, which uses the state previously setup by [[#Cmd69]]. This throws an error if the object was already created.
 
This creates the [[#IAsyncResult]] object + the async [[#Contents_Delivery|thread]] which handles the [[#IAsyncResult]] operation, which uses the state previously setup by [[#Cmd69]]. This throws an error if the object was already created.
   −
== Cmd73 ==
+
== GetLocalCommunicationReceiveSystemUpdateTaskInfo ==
 
Takes an input [[#ReceiveSystemUpdateTask]], returns an output [[#ReceiveSystemUpdateTaskInfo]].
 
Takes an input [[#ReceiveSystemUpdateTask]], returns an output [[#ReceiveSystemUpdateTaskInfo]].
    
This is the ReceiveSystemUpdate version of [[#GetSystemUpdateTaskInfo]].
 
This is the ReceiveSystemUpdate version of [[#GetSystemUpdateTaskInfo]].
   −
== Cmd76 ==
+
== CreateLocalCommunicationSendSystemUpdateTask ==
 
Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, and a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#SendSystemUpdateTask]].
 
Takes an input u16 port, an u32 Ipv4Address, an u32 firmware_variation, and a [[NCM_services#ContentMetaKey|ContentMetaKey]], returns an output [[#SendSystemUpdateTask]].
   Line 348: Line 419:  
The ContentMetaKey is for the SystemUpdate Meta ([[NCM_services#ContentMetaType|ContentMetaType]] must match SystemUpdate).
 
The ContentMetaKey is for the SystemUpdate Meta ([[NCM_services#ContentMetaType|ContentMetaType]] must match SystemUpdate).
   −
This is the Send version of [[#Cmd69]].
+
This is the Send version of [[#CreateLocalCommunicationReceiveSystemUpdateTask]].
    
This does state setup, does the above ContentMetaType validation, copies ContentMetaKey/firmware_variation into state, and does socket setup.
 
This does state setup, does the above ContentMetaType validation, copies ContentMetaKey/firmware_variation into state, and does socket setup.
Line 365: Line 436:  
* The error handling for bind()/listen() will also close the socket, when certain errors occur.
 
* The error handling for bind()/listen() will also close the socket, when certain errors occur.
   −
== Cmd77 ==
+
== RequestLocalCommunicationSendSystemUpdateTaskRun ==
 
Takes an input [[#SendSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].
 
Takes an input [[#SendSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].
   −
This is the Send version of [[#Cmd72]].
+
This is the Send version of [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]].
   −
This creates the [[#IAsyncResult]] object + the async [[#Contents_Delivery|thread]] which handles the [[#IAsyncResult]] operation, which uses the state previously setup by [[#Cmd76]]. This throws an error if the object was already created.
+
This creates the [[#IAsyncResult]] object + the async [[#Contents_Delivery|thread]] which handles the [[#IAsyncResult]] operation, which uses the state previously setup by [[#CreateLocalCommunicationSendSystemUpdateTask]]. This throws an error if the object was already created.
   −
== Cmd78 ==
+
== GetLocalCommunicationSendSystemUpdateTaskInfo ==
 
Takes an input [[#SendSystemUpdateTask]], returns an output [[#SendSystemUpdateTaskInfo]].
 
Takes an input [[#SendSystemUpdateTask]], returns an output [[#SendSystemUpdateTaskInfo]].
   −
This is the Send version of [[#Cmd73]].
+
This is the Send version of [[#GetLocalCommunicationReceiveSystemUpdateTaskInfo]].
   −
== Cmd81 ==
+
== ListLocalCommunicationSendSystemUpdateTask ==
 
Takes a type-0x6 output buffer, for an array of [[#SendSystemUpdateTask]]. Returns a s32 for total output entries.
 
Takes a type-0x6 output buffer, for an array of [[#SendSystemUpdateTask]]. Returns a s32 for total output entries.
   −
This is the Send version of [[#Cmd71]].
+
This is the Send version of [[#ListLocalCommunicationReceiveSystemUpdateTask]].
   −
== SystemUpdateTask ==
+
== SystemUpdateTaskId ==
This is a 0x10-byte struct.
+
This is an 0x10 byte struct containing an nn::util::Uuid.
    
== SystemUpdateTaskInfo ==
 
== SystemUpdateTaskInfo ==
Line 392: Line 463:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x1 || Status
+
| 0x0 || 0x1 || InstallProgressState
 
|-
 
|-
| 0x1 || 0x7 || ?
+
| 0x4 || 0x4 || LastResult
 
|-
 
|-
| 0x8 || 0x8 || Unknown
+
| 0x8 || 0x8 || InstalledSize
 
|-
 
|-
| 0x10 || 0x8 || DownloadSize
+
| 0x10 || 0x8 || TotalSize
 
|-
 
|-
| 0x18 || 0x8 || ContentMetaId
+
| 0x18 || 0x8 || [[NCM_services#ContentMetaKey|ContentMetaKey]]
 
|-
 
|-
| 0x20 || 0x4 || Version
+
| 0x28 || 0x8 || BytesInstalled
 
|-
 
|-
| 0x24 || 0x4 || ?
+
| 0x30 || 0x8 || ElapsedTimeNs
 
|-
 
|-
| 0x28 || 0x8 || BytesPerSecond
+
| 0x38 || 0x1 || SystemUpdateTaskApplyInfo
|-
  −
| 0x30 || 0x8 || BytesPerMB
  −
|-
  −
| 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.
 
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 first 0x18-bytes are obtained from [[NCM_services#GetProgress]] and the 0x10-bytes at +0x8 are returned by [[NS_Services#GetDownloadProgress]].
 +
 
 +
The two u64s at +0x28/+0x30 are obtained from [[NCM_services#GetThroughput]] and used by [[NS_Services|NS]] to calculate "ThroughputKBps" for a SystemPlayReport.
   −
The two u64s at +0x28/+0x30 are used by [[NS_Services|NS]] to calculate "ThroughputKBps" for a SystemPlayReport.
+
The byte at +0x38 is obtained from [[NCM_services#GetSystemUpdateTaskApplyInfo]].
    
== NetworkInstallTask ==
 
== NetworkInstallTask ==
Line 512: Line 581:  
|-
 
|-
 
| 1 || [3.0.0+] RequestCachedDeviceAuthenticationToken
 
| 1 || [3.0.0+] RequestCachedDeviceAuthenticationToken
 +
|-
 +
| 2 || [10.0.0+] RequestEdgeToken
 +
|-
 +
| 3 || [10.0.0+] RequestCachedEdgeToken
 
|-
 
|-
 
| 100 || RequestRegisterDeviceAccount
 
| 100 || RequestRegisterDeviceAccount
Line 528: Line 601:  
|-
 
|-
 
| 107 || [3.0.0+] IsOwnDeviceId
 
| 107 || [3.0.0+] IsOwnDeviceId
 +
|-
 +
| 108 || [14.0.0+] RevertSystemSaveDataOfDeviceAccountForDebug
 
|-
 
|-
 
| 200 || RequestRegisterNotificationToken
 
| 200 || RequestRegisterNotificationToken
Line 537: Line 612:  
| 302 || RequestLinkDevice
 
| 302 || RequestLinkDevice
 
|-
 
|-
| 303 || HasDeviceLink
+
| 303 || [1.0.0-13.2.1] HasDeviceLink
 
|-
 
|-
 
| 304 || [4.0.0+] RequestUnlinkDeviceAll
 
| 304 || [4.0.0+] RequestUnlinkDeviceAll
 
|-
 
|-
| 305 || [4.0.0+] RequestCreateVirtualAccount
+
| 305 || [4.0.0-13.2.1] RequestCreateVirtualAccount
 
|-
 
|-
 
| 306 || [4.0.0+] RequestDeviceLinkStatus
 
| 306 || [4.0.0+] RequestDeviceLinkStatus
 
|-
 
|-
| 400 || GetAccountByVirtualAccount
+
| 400 || [1.0.0-13.2.1] GetAccountByVirtualAccount
 
|-
 
|-
| 401 || [6.0.0+] GetVirtualAccount
+
| 401 || [6.0.0-13.2.1] GetVirtualAccount
 
|-
 
|-
 
| 500 || RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket)
 
| 500 || RequestSyncTicketLegacy ([1.0.0-8.1.0] RequestSyncTicket)
Line 558: Line 633:  
|-
 
|-
 
| 504 || [9.0.0+] RequestDownloadTicketForPrepurchasedContents2
 
| 504 || [9.0.0+] RequestDownloadTicketForPrepurchasedContents2
 +
|-
 +
| 505 || [13.1.0+] RequestDownloadTicketForPrepurchasedContentsForAccount
 +
|-
 +
| 600 || [14.0.0+] IsInitialLaunchFinished
 +
|-
 +
| 601 || [14.0.0+] NotifyFinishInitialLaunch
 
|}
 
|}
   Line 579: Line 660:  
|-
 
|-
 
| 3 || [6.0.0+] RegisterDebugResponse
 
| 3 || [6.0.0+] RegisterDebugResponse
 +
|-
 +
| 4 || [10.0.0+] IsLargeResourceAvailable
 
|}
 
|}
   Line 730: Line 813:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 ||  
+
| 0 || Get
 
|-
 
|-
| 1 ||  
+
| 1 || Cancel
 
|-
 
|-
| 2 ||  
+
| 2 || GetSize
 
|-
 
|-
| 3 ||  
+
| 3 || Read
 
|-
 
|-
| 4 ||  
+
| 4 || GetETag
 
|-
 
|-
| 5 || [4.0.0+]
+
| 5 || [4.0.0+] GetErrorContext
 
|}
 
|}
   Line 800: Line 883:  
| 0x5 || 0x1 || Padding
 
| 0x5 || 0x1 || Padding
 
|-
 
|-
| 0x6 || 0x2 || u16 size0. Must be <=0x1000.
+
| 0x6 || 0x2 || u16 meta_size. Must be <=0x1000.
 
|-
 
|-
| 0x8 || 0x8 || s64 size1. Must not be negative. During message-specific handling with request/reply this must also match the expected value (except for ID 0x0 which is ignored in this case).
+
| 0x8 || 0x8 || s64 data_size. Must not be negative. During message-specific handling with request/reply this must also match the expected value (except for ID 0x0 which is ignored in this case).
 
|}
 
|}
   −
After the header is the associated data for size0 and size1. The functions which generate the header always leave size0 at value 0, when receiving the data for size0 the received data is unused.
+
After the header is the associated data for meta_size and data_size. The functions which generate the header always leave meta_size at value 0, when receiving the data for meta_size the received data is unused.
    
The first message used by the client with SystemUpdate is ID 0x1.
 
The first message used by the client with SystemUpdate is ID 0x1.
Line 815: Line 898:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! ID || Request size1 / data || Reply size1 / data || Description
+
! ID || Request data_size / data || Reply data_size / data || Description
 
|-
 
|-
 
| 0x0 || 0x0 || 0x0 || Tells the server to exit. When handling this the handler func will immediately return 0, without sending a reply.
 
| 0x0 || 0x0 || 0x0 || Tells the server to exit. When handling this the handler func will immediately return 0, without sending a reply.
 
|-
 
|-
| 0x1 || [[NCM_services#ContentMetaKey|ContentMetaKey]] || 0x38-byte [[CNMT#Content_Records|Content Record]] || Gets the Content Record with type==Meta for the specified ContentMetaKey. The SystemUpdate client uses the ContentMetaKey from [[#Cmd69]].
+
| 0x1 || [[NCM_services#ContentMetaKey|ContentMetaKey]] || [[CNMT#Content_Records|PackagedContentInfo]] || Gets the PackagedContentInfo with type==Meta for the specified ContentMetaKey. The SystemUpdate client uses the ContentMetaKey from [[#Cmd69]].
 
|-
 
|-
| 0x2 || 0x18-bytes: [[NCM_services#ContentId|ContentId]], u8 flag, u8 pad[7]. When flag is 0, during the transfer [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] total_size is increased using the size of the current chunk. Once the transfer is finished, the end result is that it would be increased by the total content-size. || Size from [[NCM_services#GetSizeFromContentId|GetSizeFromContentId]] with data from [[NCM_services#ReadContentIdFile|ReadContentIdFile]]. || Gets the entire content data for the specified ContentId. The client uses each received chunk of data during the transfer with [[NCM_services|WritePlaceHolder]].
+
| 0x2 || 0x18-bytes: [[NCM_services#ContentId|ContentId]], u8 flag, u8 pad[7]. When flag is 0, during the transfer [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] current_size is increased using the size of the current chunk. Once the transfer is finished, the end result is that it would be increased by the total content-size. The only time the nim client sets this flag to 1 with SystemUpdate is with the SystemUpdate Meta content. || Size from [[NCM_services#GetSizeFromContentId|GetSizeFromContentId]] with data from [[NCM_services#ReadContentIdFile|ReadContentIdFile]]. || Gets the entire content data for the specified ContentId. The client uses each received chunk of data during the transfer with [[NCM_services|WritePlaceHolder]].
 
|-
 
|-
 
| 0x3 || 0x10-byte input for [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || 0x8-bytes: two size u32s. Then two blocks of data with the sizes specified by the u32s. The server loads the sizes and data from [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || The two blocks of data are used as the buffers for [[ETicket_services|es]] ImportTicket by the client. This is used for transferring the specified Application Patch CommonTicket.
 
| 0x3 || 0x10-byte input for [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || 0x8-bytes: two size u32s. Then two blocks of data with the sizes specified by the u32s. The server loads the sizes and data from [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || The two blocks of data are used as the buffers for [[ETicket_services|es]] ImportTicket by the client. This is used for transferring the specified Application Patch CommonTicket.
 
|-
 
|-
| 0x4 || s64 current_size || 0x0 || The input data is copied into the server state, for [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] current_size.
+
| 0x4 || s64 total_size || 0x0 || The input data is copied into the server state, for [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] total_size.
 
|}
 
|}
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu