Migration services
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 | TryGetLastMigrationInfo |
| 100 | #CreateServer |
| 101 | #ResumeServer |
| 200 | #CreateClient |
| 201 | #ResumeClient |
| 1001 | [8.0.0+] |
| 1010 | [7.0.0+] |
| 1100 | [7.0.0+] |
| 1101 | [7.0.0+] |
| 1110 | [17.0.0+] |
| 1200 | [7.0.0+] |
| 1201 | [7.0.0+] |
CreateServer
Takes a total of 0x18-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an #IServer.
ResumeServer
Takes an input u32, a TransferMemory handle, returns an #IServer.
CreateClient
Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an #IClient.
ResumeClient
Takes an input u32, a TransferMemory handle, returns an #IClient.
Cmd1001
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.
Cmd1100
Takes a total of 0x20-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an IServer.
Cmd1101
Takes an input u32, a TransferMemory handle, returns an IServer.
Cmd1200
Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an IClient.
Cmd1201
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 | |
| 1 | |
| 2 | |
| 3 | [17.0.0+] |
| 100 | |
| 101 | |
| 200 | |
| 201 | |
| 210 | [8.0.0+] |
| 300 | |
| 400 | |
| 500 | |
| 510 | [19.0.0+] |
| 998 | [8.0.0+] |
| 999 | [8.0.0+] |
IClient
This is "nn::migration::savedata::IClient".
This was added with [7.0.0+].
| Cmd | Name |
|---|---|
| 0 | |
| 100 | |
| 200 | |
| 201 | |
| 210 | |
| 220 | [8.0.0+] |
| 221 | [8.0.0+] |
| 300 | |
| 301 | |
| 302 | |
| 303 | |
| 304 | [17.0.0+] |
| 310 | |
| 320 | |
| 350 | |
| 400 | |
| 500 | |
| 510 | [19.0.0+] |
| 996 | [8.0.0+] |
| 997 | [8.0.0+] |
| 998 | [8.0.0+] |
| 999 |