NIM services: Difference between revisions

(2 intermediate revisions by the same user not shown)
Line 253: Line 253:
== GetApplyDeltaTaskInfo ==
== GetApplyDeltaTaskInfo ==
Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]].
Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]].
== Cmd53 ==
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]].
The wrapper used by official sw passes hard-coded value 0x2 for '''unk'''.
== Cmd56 ==
Takes an input [[#ReceiveApplicationTask]], returns an output Event and an [[#IAsyncResult]].
This is the ReceiveApplication version of [[#Cmd72]].
== Cmd57 ==
Takes an input [[#ReceiveApplicationTask]], returns an output [[#ReceiveApplicationTaskInfo]].
This is the ReceiveApplication version of [[#GetSystemUpdateTaskInfo]].
== Cmd60 ==
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]].
== Cmd61 ==
Takes an input [[#SendApplicationTask]], returns an output Event and an [[#IAsyncResult]].
This is the SendApplicationTask version of [[#Cmd72]].
== Cmd63 ==
Takes an input [[#SendApplicationTask]], returns an output [[#SendApplicationTaskInfo]].
This is the SendApplication version of [[#GetSystemUpdateTaskInfo]].
== Cmd67 ==
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]].
== Cmd68 ==
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]].


== Cmd69 ==
== Cmd69 ==
Line 259: Line 301:
Official sw sets '''unk''' to: <code>unk = stateflag==0 ? 0x4 : 0xC</code>. The port/Ipv4Address params originate from the [[NS_Services#RequestReceiveSystemUpdate|RequestReceiveSystemUpdate]] params.
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 ReceiveSystemUpdate version of [[#CreateSystemUpdateTask]].


The ContentMetaKey is for the SystemUpdate Meta.
The ContentMetaKey is for the SystemUpdate Meta.
Line 285: Line 327:
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 Receive version of [[#ListSystemUpdateTask]].
This is the ReceiveSystemUpdate version of [[#ListSystemUpdateTask]].


== Cmd72 ==
== Cmd72 ==
Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].
Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]].


This is the Receive version of RequestSystemUpdateTaskRun.
This is the ReceiveSystemUpdate version of RequestSystemUpdateTaskRun.


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.
Line 297: Line 339:
Takes an input [[#ReceiveSystemUpdateTask]], returns an output [[#ReceiveSystemUpdateTaskInfo]].
Takes an input [[#ReceiveSystemUpdateTask]], returns an output [[#ReceiveSystemUpdateTaskInfo]].


This is the Receive version of [[#GetSystemUpdateTaskInfo]].
This is the ReceiveSystemUpdate version of [[#GetSystemUpdateTaskInfo]].


== Cmd76 ==
== Cmd76 ==
Line 336: Line 378:


== Cmd81 ==
== Cmd81 ==
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 [[#SendSystemUpdateTask]]. Returns a s32 for total output entries.


This is the Send version of [[#Cmd71]].
This is the Send version of [[#Cmd71]].
Line 414: Line 456:
|-
|-
| 0x19 || 0x7 || Padding
| 0x19 || 0x7 || Padding
|}
This is a 0x20-byte struct.
== ReceiveApplicationTask ==
This is a 0x10-byte struct.
== ReceiveApplicationTaskInfo ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x1 || Status
|-
| 0x1 || 0x7 || ?
|-
| 0x8 || 0x10 || [[NS_Services#ReceiveApplicationProgress|ReceiveApplicationProgress]]
|-
| 0x18 || 0x20 || Unknown
|}
This is a 0x38-byte struct.
== SendApplicationTask ==
This is a 0x10-byte struct.
== SendApplicationTaskInfo ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x1 || Status
|-
| 0x1 || 0x7 || ?
|-
| 0x8 || 0x10 || [[NS_Services#SendApplicationProgress|SendApplicationProgress]]
|-
| 0x18 || 0x8 || Unknown
|}
|}