Migration services: Difference between revisions
No edit summary |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 47: | Line 47: | ||
|- | |- | ||
| 2100 || [20.0.0+] | | 2100 || [20.0.0+] | ||
|- | |||
| 2110 || [20.0.0+] | |||
|- | |- | ||
| 2200 || [20.0.0+] | | 2200 || [20.0.0+] | ||
Line 116: | Line 118: | ||
== ResumeSaveDataMigrationClient == | == ResumeSaveDataMigrationClient == | ||
Takes an input u32, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | Takes an input u32, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | ||
== Cmd2100 == | |||
Takes 4-bytes of input, a type-0x19 input buffer containing a 0x100-byte struct, a handle. Returns an [[#IServer_3|IServer]]. | |||
== Cmd2110 == | |||
Takes 4-bytes of input, a handle. Returns an [[#IServer_3|IServer]]. | |||
== Cmd2200 == | |||
Takes 4-bytes of input, a type-0x19 input buffer containing a 0x100-byte struct, a handle. Returns an [[#IClient_3|IClient]]. | |||
On NX this just calls a logging func and returns an error. | |||
== Cmd2210 == | |||
Takes 4-bytes of input, a handle. Returns an [[#IClient_3|IClient]]. | |||
On NX this just calls a logging func and returns an error. | |||
== Cmd2250 == | |||
Takes a total of 0x18-bytes of input, a handle. Returns an [[#IUnknown|IUnknown]]. | |||
== Cmd2260 == | |||
Takes 4-bytes of input, a handle. Returns an [[#IUnknown|IUnknown]]. | |||
== Cmd2280 == | |||
Takes an input u64, returns an [[#IAsyncContext]]. | |||
This starts a network request for [[Network|transfer_events/%lld/rollback]]. | |||
== Cmd2300 == | |||
Takes a total of 0x18-bytes of input, a handle. Returns an [[#IUploader|IUploader]]. | |||
== Cmd2310 == | |||
Takes 4-bytes of input, a handle. Returns an [[#IUploader|IUploader]]. | |||
== Cmd2400 == | |||
Takes a total of 0x10-bytes of input, a handle. Returns an [[#IDownloader|IDownloader]]. | |||
== Cmd2420 == | |||
Takes 4-bytes of input, a handle. Returns an [[#IDownloader|IDownloader]]. | |||
== IServer == | == IServer == | ||
Line 342: | Line 383: | ||
=== ListServers === | === ListServers === | ||
[20.0.0+] The struct size is now 0x130-bytes instead of 0x128-bytes. | [20.0.0+] The struct size is now 0x130-bytes instead of 0x128-bytes. | ||
== IServer == | |||
This is "nn::migration::device::IServer". | |||
This was added with [20.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || | |||
|- | |||
| 10 || | |||
|- | |||
| 20 || | |||
|- | |||
| 21 || | |||
|- | |||
| 30 || | |||
|- | |||
| 40 || | |||
|- | |||
| 50 || | |||
|- | |||
| 100 || | |||
|- | |||
| 110 || | |||
|- | |||
| 111 || | |||
|- | |||
| 120 || | |||
|- | |||
| 130 || | |||
|- | |||
| 200 || | |||
|- | |||
| 230 || | |||
|- | |||
| 290 || | |||
|- | |||
| 300 || | |||
|- | |||
| 400 || | |||
|- | |||
| 510 || | |||
|- | |||
| 900 || | |||
|} | |||
== IClient == | |||
This is "nn::migration::device::IClient". | |||
This was added with [20.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 10 || | |||
|- | |||
| 20 || | |||
|- | |||
| 30 || | |||
|- | |||
| 100 || | |||
|- | |||
| 110 || | |||
|- | |||
| 111 || | |||
|- | |||
| 200 || | |||
|- | |||
| 210 || | |||
|- | |||
| 220 || | |||
|- | |||
| 230 || | |||
|- | |||
| 240 || | |||
|- | |||
| 250 || | |||
|- | |||
| 290 || | |||
|- | |||
| 300 || | |||
|- | |||
| 310 || | |||
|- | |||
| 320 || | |||
|- | |||
| 330 || | |||
|- | |||
| 340 || | |||
|- | |||
| 400 || | |||
|- | |||
| 500 || | |||
|- | |||
| 610 || | |||
|- | |||
| 700 || | |||
|- | |||
| 710 || | |||
|- | |||
| 720 || | |||
|} | |||
== IUnknown == | |||
This was added with [20.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || | |||
|- | |||
| 1 || | |||
|- | |||
| 2 || | |||
|- | |||
| 3 || | |||
|- | |||
| 100 || | |||
|- | |||
| 110 || | |||
|} | |||
== IUploader == | |||
This is "nn::migration::device::IUploader". | |||
This was added with [20.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 90 || | |||
|- | |||
| 100 || | |||
|- | |||
| 310 || | |||
|- | |||
| 320 || | |||
|- | |||
| 330 || | |||
|- | |||
| 340 || | |||
|- | |||
| 350 || | |||
|- | |||
| 400 || | |||
|- | |||
| 500 || | |||
|- | |||
| 610 || | |||
|- | |||
| 900 || | |||
|} | |||
== IDownloader == | |||
This is "nn::migration::device::IDownloader". | |||
This was added with [20.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 10 || | |||
|- | |||
| 20 || | |||
|- | |||
| 30 || | |||
|- | |||
| 90 || | |||
|- | |||
| 100 || | |||
|- | |||
| 300 || | |||
|- | |||
| 310 || | |||
|- | |||
| 320 || | |||
|- | |||
| 330 || | |||
|- | |||
| 400 || | |||
|- | |||
| 500 || | |||
|- | |||
| 610 || | |||
|- | |||
| 620 || | |||
|- | |||
| 900 || | |||
|} | |||
= Notes = | = Notes = | ||
Savedata transfer ("nn::migration::savedata::IServer"/"nn::migration::savedata::IClient") requires that accounts are linked to the same network-account. acc:su [[NS_services#IManagerForSystemService|IManagerForSystemService]] GetAccountId is used here. The server stores this Id into state, and also stores it in the [[LDN_services|ldn]] AdvertiseData. The client also verifies the Id in AdvertiseData against the Id from GetAccountId for the account(s) being used, during ScanServersAsync. | Savedata transfer ("nn::migration::savedata::IServer"/"nn::migration::savedata::IClient") requires that accounts are linked to the same network-account. acc:su [[NS_services#IManagerForSystemService|IManagerForSystemService]] GetAccountId is used here. The server stores this Id into state, and also stores it in the [[LDN_services|ldn]] AdvertiseData. The client also verifies the Id in AdvertiseData against the Id from GetAccountId for the account(s) being used, during ScanServersAsync. | ||
[S2] [[qlaunch]] now has an additional menu once send-savedata is selected, for selecting whether to send to Nintendo Switch or Nintendo Switch 2. If Switch 2 is selected, and there's a S1 receiving, the S2 will display a message regarding wrong target system. The receiving system also displays an error. Note that savedata for S2-only applications is only listed with the dest-S2 option (S1-applications are also listed). | |||
[[Category:Services]] | [[Category:Services]] |