Migration services: Difference between revisions

No edit summary
No edit summary
(2 intermediate revisions by the same user not shown)
Line 61: Line 61:
== ResumeSaveDataMigrationServer ==
== ResumeSaveDataMigrationServer ==
Takes an input u32, a TransferMemory handle, returns an [[#IServer_2|IServer]].
Takes an input u32, a TransferMemory handle, returns an [[#IServer_2|IServer]].
== Cmd1110 ==
Takes a total of 0x18-bytes of input, a type-0x19 input buffer, a type-0x5 input buffer containing an array of u64s, and a TransferMemory handle. Returns an [[#IServer_2|IServer]].
This is identical to [[#CreateSaveDataMigrationServer|CreateSaveDataMigrationServer]] except the u64-array is passed directly instead of from a single input u64.


== CreateSaveDataMigrationClient ==
== CreateSaveDataMigrationClient ==
Line 197: Line 202:
| 3 || [17.0.0+] ListApplicationIds
| 3 || [17.0.0+] ListApplicationIds
|-
|-
| 100 || PrepareAsync
| 100 || [[#PrepareAsync|PrepareAsync]]
|-
|-
| 101 || GetConnectionRequirement
| 101 || GetConnectionRequirement
Line 219: Line 224:
| 999 || [8.0.0+] DebugWaitStateSynchronizationFinalizedAsync
| 999 || [8.0.0+] DebugWaitStateSynchronizationFinalizedAsync
|}
|}
=== PrepareAsync ===
No input, returns an [[#IAsyncContext|IAsyncContext]].
Besides various other functionality, the async task also uses functionality similar to [[#GetSaveDataMigrationPolicyInfoAsync|GetSaveDataMigrationPolicyInfoAsync]], throwing an error if needed.


== IClient ==
== IClient ==
Line 273: Line 283:
| 999 || DebugSynchronizeStateFinalizedAsync
| 999 || DebugSynchronizeStateFinalizedAsync
|}
|}
= 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.


[[Category:Services]]
[[Category:Services]]