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]] |