NIM services: Difference between revisions
add command names for local communication send/receive |
|||
Line 76: | Line 76: | ||
| 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]] | | 35 || [2.0.0+] [[#GetApplyDeltaTaskInfo]] | ||
|- | |- | ||
| 36 || [2.0.0+] | | 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+] | | 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-9.2.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 249: | Line 249: | ||
[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+] | [8.0.0+] [[#CreateLocalCommunicationSendSystemUpdateTask]] now takes an additional 0x8-bytes of input. | ||
== CreateSystemUpdateTask == | == CreateSystemUpdateTask == | ||
Line 284: | Line 284: | ||
Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]]. | Takes an input [[#ApplyDeltaTask]], returns an output [[#ApplyDeltaTaskInfo]]. | ||
== | == 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 [[# | 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'''. | ||
== | == 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 [[# | This is the ReceiveApplication version of [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]]. | ||
== | == 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]]. | ||
== | == 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 [[# | This is the SendApplication version of [[#CreateLocalCommunicationReceiveSystemUpdateTask]]. | ||
== | == 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 [[# | This is the SendApplicationTask version of [[#RequestLocalCommunicationReceiveSystemUpdateTaskRun]]. | ||
== | == 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]]. | ||
== | == 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 [[# | This is the ReceiveApplication version of [[#ListLocalCommunicationReceiveSystemUpdateTask]]. | ||
== | == 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 [[# | This is the SendApplication version of [[#ListLocalCommunicationReceiveSystemUpdateTask]]. | ||
== | == 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 354: | Line 354: | ||
* 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. | ||
== | == 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]]. | ||
== | == RequestLocalCommunicationReceiveSystemUpdateTaskRun == | ||
Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]]. | Takes an input [[#ReceiveSystemUpdateTask]], returns an output Event and an [[#IAsyncResult]]. | ||
Line 366: | Line 366: | ||
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. | ||
== | == 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]]. | ||
== | == 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 378: | Line 378: | ||
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 [[# | 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 395: | Line 395: | ||
* 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. | ||
== | == 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 [[# | 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 [[# | 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. | ||
== | == GetLocalCommunicationSendSystemUpdateTaskInfo == | ||
Takes an input [[#SendSystemUpdateTask]], returns an output [[#SendSystemUpdateTaskInfo]]. | Takes an input [[#SendSystemUpdateTask]], returns an output [[#SendSystemUpdateTaskInfo]]. | ||
This is the Send version of [[# | This is the Send version of [[#GetLocalCommunicationReceiveSystemUpdateTaskInfo]]. | ||
== | == 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 [[# | This is the Send version of [[#ListLocalCommunicationReceiveSystemUpdateTask]]. | ||
== SystemUpdateTaskId == | == SystemUpdateTaskId == |