NS services: Difference between revisions
No edit summary |
|||
Line 850: | Line 850: | ||
| 2011 || [4.0.0+] [[#CommitReceiveApplication]] | | 2011 || [4.0.0+] [[#CommitReceiveApplication]] | ||
|- | |- | ||
| 2012 || [4.0.0+] GetReceiveApplicationProgress | | 2012 || [4.0.0+] [[#GetReceiveApplicationProgress]] | ||
|- | |- | ||
| 2013 || [4.0.0+] [[#RequestSendApplication]] | | 2013 || [4.0.0+] [[#RequestSendApplication]] | ||
|- | |- | ||
| 2014 || [4.0.0+] GetSendApplicationProgress | | 2014 || [4.0.0+] [[#GetSendApplicationProgress]] | ||
|- | |- | ||
| 2015 || [4.0.0+] CompareSystemDeliveryInfo | | 2015 || [4.0.0+] CompareSystemDeliveryInfo | ||
Line 1,015: | Line 1,015: | ||
Takes a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], an u8 [[Filesystem_services#StorageId|StorageId]], an u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, returns an output Event handle and an [[#IAsyncResult]]. | Takes a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], an u8 [[Filesystem_services#StorageId|StorageId]], an u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, returns an output Event handle and an [[#IAsyncResult]]. | ||
An error is thrown if [[NIM_services|nim]] ListApplicationApplyDeltaTask returns a task. | An error is thrown if a state flag is not set. An error is thrown if [[NIM_services|nim]] ListApplicationApplyDeltaTask returns a task. | ||
This loops through the input [[NCM_services#ContentMetaKey|ContentMetaKey]] array, throwing an error if the [[NCM_services#ContentMetaType|ContentMetaType]] doesn't match Patch. The input array is copied into state which is used later by the thread for [[NIM_services|nim]] cmd53, max entries is 0x12. | This loops through the input [[NCM_services#ContentMetaKey|ContentMetaKey]] array, throwing an error if the [[NCM_services#ContentMetaType|ContentMetaType]] doesn't match Patch. The input array is copied into state which is used later by the thread for [[NIM_services|nim]] cmd53, max entries is 0x12. | ||
Line 1,031: | Line 1,031: | ||
==== CommitReceiveApplication ==== | ==== CommitReceiveApplication ==== | ||
Takes an input u64 <code>nn::ncm::ApplicationId</code>, no output. | Takes an input u64 <code>nn::ncm::ApplicationId</code>, no output. | ||
==== GetReceiveApplicationProgress ==== | |||
Takes an input u64 <code>nn::ncm::ApplicationId</code>, returns an output [[#ReceiveApplicationProgress]]. | |||
An error is thrown if a state flag is not set. An error is thrown if [[NIM_services|nim]] ListApplicationApplyDeltaTask returns a task. | |||
Uses [[NIM_services|nim]] cmd67, throwing an error if no task is returned. Then [[NIM_services|nim]] cmd57 is used, returning the error from there on failure. Lastly, this writes the 0x10-bytes from output+8 from the latter cmd to the output [[#ReceiveApplicationProgress]], and returns 0. | |||
==== RequestSendApplication ==== | ==== RequestSendApplication ==== | ||
Takes a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], an u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, returns an output Event handle and an [[#IAsyncResult]]. | Takes a type-0x5 input buffer containing an array of [[NCM_services#ContentMetaKey|ContentMetaKey]], an u16 port, an u32 Ipv4Address, an u64 <code>nn::ncm::ApplicationId</code>, returns an output Event handle and an [[#IAsyncResult]]. | ||
An error is thrown if [[NIM_services|nim]] ListApplicationApplyDeltaTask returns a task. | An error is thrown if a state flag is not set. An error is thrown if [[NIM_services|nim]] ListApplicationApplyDeltaTask returns a task. | ||
The [[NCM_services#ContentMetaType|ContentMetaType]] must match Patch. | The [[NCM_services#ContentMetaType|ContentMetaType]] must match Patch. | ||
Line 1,048: | Line 1,055: | ||
* On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set. | * On success, this loads various data which is then used for saving a SystemPlayReport when a state flag is set. | ||
** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>. | ** The EventId is "send_app_contents" with ApplicationId <NS ProgramId>. | ||
==== GetSendApplicationProgress ==== | |||
Takes an input u64 <code>nn::ncm::ApplicationId</code>, returns an output [[#SendApplicationProgress]]. | |||
Same as [[#GetReceiveApplicationProgress]] except this is the Send version, and uses [[NIM_services|nim]] cmd68/cmd63 instead. | |||
=== IApplicationVersionInterface === | === IApplicationVersionInterface === | ||
Line 1,844: | Line 1,856: | ||
This is "nn::ns::LatestSystemUpdate". This is an u8. | This is "nn::ns::LatestSystemUpdate". This is an u8. | ||
= ReceiveApplicationProgress = | |||
This is "nn::ns::ReceiveApplicationProgress". This is a 0x10-byte struct. | |||
= SendApplicationProgress = | |||
This is "nn::ns::SendApplicationProgress". This is a 0x10-byte struct. | |||
[[Category:Services]] | [[Category:Services]] |