Difference between revisions of "Migration services"

From Nintendo Switch Brew
Jump to navigation Jump to search
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Migration is a sysmodule designed for handling the new Switch to Switch transfer system.
+
Migration is a sysmodule designed for handling the Switch-to-Switch transfer system introduced in firmware [[4.0.0]].
  
 
= mig:usr =
 
= mig:usr =
Line 10: Line 10:
 
| 10 || TryGetLastMigrationInfo
 
| 10 || TryGetLastMigrationInfo
 
|-
 
|-
| 100 || CreateServer
+
| 100 || [[#CreateServer]]
 
|-
 
|-
| 101 || ResumeServer
+
| 101 || [[#ResumeServer]]
 
|-
 
|-
| 200 || CreateClient
+
| 200 || [[#CreateClient]]
 
|-
 
|-
| 201 || ResumeClient
+
| 201 || [[#ResumeClient]]
 +
|-
 +
| 1001 || [8.0.0+]
 
|-
 
|-
 
| 1010 || [7.0.0+]
 
| 1010 || [7.0.0+]
Line 23: Line 25:
 
|-
 
|-
 
| 1101 || [7.0.0+]
 
| 1101 || [7.0.0+]
 +
|-
 +
| 1110 || [17.0.0+]
 
|-
 
|-
 
| 1200 || [7.0.0+]
 
| 1200 || [7.0.0+]
Line 28: Line 32:
 
| 1201 || [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_2|IServer]].
 +
 +
== Cmd1101 ==
 +
Takes an input u32, a TransferMemory handle, returns an [[#IServer_2|IServer]].
 +
 +
== Cmd1200 ==
 +
Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IClient_2|IClient]].
 +
 +
== Cmd1201 ==
 +
Takes an input u32, a TransferMemory handle, returns an [[#IClient_2|IClient]].
  
 
== IServer ==
 
== IServer ==
Line 110: Line 141:
  
 
== IAsyncContext ==
 
== IAsyncContext ==
This is "nn::migration::user::IAsyncContext"
+
This is "nn::migration::detail::IAsyncContext".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 124: Line 155:
 
| 3 || GetResult
 
| 3 || GetResult
 
|-
 
|-
 +
|}
 +
 +
== IAsyncSaveDataMigrationPolicyInfoContext ==
 +
This is "nn::migration::detail::IAsyncSaveDataMigrationPolicyInfoContext".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 ||
 +
|-
 +
| 1 ||
 +
|-
 +
| 2 ||
 +
|-
 +
| 3 ||
 +
|-
 +
| 100 ||
 
|}
 
|}
  
Line 140: Line 189:
 
|-
 
|-
 
| 2 ||  
 
| 2 ||  
 +
|-
 +
| 3 || [17.0.0+]
 
|-
 
|-
 
| 100 ||  
 
| 100 ||  
Line 148: Line 199:
 
|-
 
|-
 
| 201 ||  
 
| 201 ||  
 +
|-
 +
| 210 || [8.0.0+]
 
|-
 
|-
 
| 300 ||  
 
| 300 ||  
Line 154: Line 207:
 
|-
 
|-
 
| 500 ||  
 
| 500 ||  
 +
|-
 +
| 998 || [8.0.0+]
 +
|-
 +
| 999 || [8.0.0+]
 
|-
 
|-
 
|}
 
|}
Line 175: Line 232:
 
|-
 
|-
 
| 210 ||  
 
| 210 ||  
 +
|-
 +
| 220 || [8.0.0+]
 +
|-
 +
| 221 || [8.0.0+]
 
|-
 
|-
 
| 300 ||  
 
| 300 ||  
Line 183: Line 244:
 
|-
 
|-
 
| 303 ||  
 
| 303 ||  
 +
|-
 +
| 304 || [17.0.0+]
 
|-
 
|-
 
| 310 ||  
 
| 310 ||  
Line 193: Line 256:
 
|-
 
|-
 
| 500 ||  
 
| 500 ||  
 +
|-
 +
| 996 || [8.0.0+]
 +
|-
 +
| 997 || [8.0.0+]
 +
|-
 +
| 998 || [8.0.0+]
 
|-
 
|-
 
| 999 ||  
 
| 999 ||  

Latest revision as of 20:59, 12 October 2023

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
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
1
2
3
100

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
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
996 [8.0.0+]
997 [8.0.0+]
998 [8.0.0+]
999