Migration services

From Nintendo Switch Brew
Jump to navigation Jump to search

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

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 a total of 8-bytes of input, returns an #IAsyncSaveDataMigrationPolicyInfoContext.

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