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