*** This handles the requests as required by the ID, no particular order is required by the server.
*** All IDs in the below table are implemented by the server, for both SystemUpdate and Application.
*** An error is thrown if the ID is unrecognized
. An error is thrown if the value of the request size1 doesn't match the expected fixed value (except for ID 0x0).
The above socket setup for the Send async thread does the following:
| 0x6 || 0x2 || u16 size0. Must be <=0x1000.
| 0x8 || 0x8 || s64 size1. Must not be negative.
| 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]].
| 0x2 || 0x18-bytes: [[NCM_services#ContentId|ContentId]] u8 flag, u8 pad. 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.
| 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.