Migration services

Revision as of 20:10, 19 March 2025 by Hexkyz (talk | contribs)

Migration is a sysmodule designed for handling the Switch-to-Switch transfer system introduced in firmware 4.0.0.

With newer system-versions this sysmodule is only running when qlaunch is using migration from the relevant transfer menus (see ActivateMigrationService/DeactivateMigrationService).

mig:usr

This is "nn::migration::user::IService"

Cmd Name
0 [19.0.0+]
10 [7.0.0+] TryGetLastUserMigrationInfo ([4.0.0-6.2.0] TryGetLastMigrationInfo)
100 [7.0.0+] CreateUserMigrationServer ([4.0.0-6.2.0] CreateServer)
101 [7.0.0+] ResumeUserMigrationServer ([4.0.0-6.2.0] ResumeServer)
200 [7.0.0+] CreateUserMigrationClient ([4.0.0-6.2.0] CreateClient)
201 [7.0.0+] ResumeUserMigrationClient ([4.0.0-6.2.0] ResumeClient)
1001 [8.0.0+] GetSaveDataMigrationPolicyInfoAsync
1010 [7.0.0+] TryGetLastSaveDataMigrationInfo
1100 [7.0.0+] CreateSaveDataMigrationServer
1101 [7.0.0+] ResumeSaveDataMigrationServer
1110 [17.0.0+]
1200 [7.0.0+] CreateSaveDataMigrationClient
1201 [7.0.0+] ResumeSaveDataMigrationClient

CreateUserMigrationServer

Takes a total of 0x18-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an #IServer.

ResumeUserMigrationServer

Takes an input u32, a TransferMemory handle, returns an #IServer.

CreateUserMigrationClient

Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an #IClient.

ResumeUserMigrationClient

Takes an input u32, a TransferMemory handle, returns an #IClient.

GetSaveDataMigrationPolicyInfoAsync

Takes an ApplicationId, returns an #IAsyncSaveDataMigrationPolicyInfoContext.

This is used by qlaunch before the actual savedata transfer is started.

This starts a network request for save_data_migration_policy.

CreateSaveDataMigrationServer

Takes a total of 0x20-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an IServer.

ResumeSaveDataMigrationServer

Takes an input u32, a TransferMemory handle, returns an IServer.

CreateSaveDataMigrationClient

Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an IClient.

ResumeSaveDataMigrationClient

Takes an input u32, a TransferMemory handle, returns an IClient.

IServer

This is "nn::migration::user::IServer"

Cmd Name
0 GetUid
1 GetServerProfile
100 PrepareAsync
101 GetConnectionRequirement
200 WaitConnectionAsync
201 GetClientProfile
202 AcceptConnectionAsync
203 DeclineConnectionAsync
300 ProcessTransferAsync
400 CompleteAsync
500 Abort

IClient

This is "nn::migration::user::IClient"

Cmd Name
0 GetClientProfile
10 CreateLoginSession
11 GetNetworkServiceAccountId
12 GetUserNickname
13 GetUserProfileImage
100 PrepareAsync
101 GetConnectionRequirement
200 ScanServersAsync
201 ListServers
210 ConnectByServerIdAsync
300 GetStorageShortfall
301 GetTotalTransferInfo
302 GetImmigrantUid
310 GetCurrentTransferInfo
311 GetCurrentRelatedApplications
320 TransferNextAsync
350 SuspendAsync
400 CompleteAsync
500 Abort
999 DebugSynchronizeStateInFinalizationAsync

IAsyncContext

This is "nn::migration::detail::IAsyncContext".

Cmd Name
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult

IAsyncSaveDataMigrationPolicyInfoContext

This is "nn::migration::detail::IAsyncSaveDataMigrationPolicyInfoContext".

Cmd Name
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult
100 GetSaveDataMigrationPolicyInfo

IServer

This is "nn::migration::savedata::IServer".

This was added with [7.0.0+].

Cmd Name
0 GetUid
1 GetApplicationId
2 GetServerProfile
3 [17.0.0+] ListApplicationIds
100 PrepareAsync
101 GetConnectionRequirement
200 WaitConnectionAsync
201 GetClientProfile
210 [8.0.0+] WaitAcceptanceAsync
300 ProcessTransferAsync
400 CompleteAsync
500 Abort
510 [19.0.0+]
998 [8.0.0+] DebugTryGetState
999 [8.0.0+] DebugWaitStateSynchronizationFinalizedAsync

IClient

This is "nn::migration::savedata::IClient".

This was added with [7.0.0+].

Cmd Name
0 GetClientProfile
100 GetConnectionRequirement
200 ScanServersAsync
201 ListServers
210 ConnectByServerIdAsync
220 [8.0.0+] AcceptAsync
221 [8.0.0+] DeclineAsync
300 GetStorageShortfall
301 GetTotalTransferInfo
302 GetImmigrantUid
303 GetApplicationId
304 [17.0.0+] ListApplicationIds
310 GetCurrentTransferInfo
320 TransferNextAsync
350 SuspendAsync
400 CompleteAsync
500 Abort
510 [19.0.0+]
996 [8.0.0+] DebugTryGetState
997 [8.0.0+] DebugSynchronizeStateInFinalization0Async
998 [8.0.0+] DebugSynchronizeStateInFinalization1Async
999 DebugSynchronizeStateFinalizedAsync