NIM services: Difference between revisions
(3 intermediate revisions by 2 users not shown) | |||
Line 406: | Line 406: | ||
| 0x24 || 0x4 || ? | | 0x24 || 0x4 || ? | ||
|- | |- | ||
| 0x28 || 0x8 || | | 0x28 || 0x8 || BytesPerSecond | ||
|- | |- | ||
| 0x30 || 0x8 || | | 0x30 || 0x8 || BytesPerMB | ||
|- | |- | ||
| 0x38 || 0x8 || ? | | 0x38 || 0x8 || ? | ||
Line 800: | Line 800: | ||
| 0x5 || 0x1 || Padding | | 0x5 || 0x1 || Padding | ||
|- | |- | ||
| 0x6 || 0x2 || u16 | | 0x6 || 0x2 || u16 meta_size. Must be <=0x1000. | ||
|- | |- | ||
| 0x8 || 0x8 || s64 | | 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 | 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 815: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! ID || Request | ! 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]] || | | 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]] | | 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 | | 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]] |