Difference between revisions of "Migration services"
m (→Cmd1001) |
|||
Line 12: | Line 12: | ||
| 0 || [19.0.0+] | | 0 || [19.0.0+] | ||
|- | |- | ||
− | | 10 || TryGetLastMigrationInfo | + | | 10 || [7.0.0+] TryGetLastUserMigrationInfo ([4.0.0-6.2.0] TryGetLastMigrationInfo) |
|- | |- | ||
− | | 100 || [[# | + | | 100 || [7.0.0+] [[#CreateUserMigrationServer|CreateUserMigrationServer]] ([4.0.0-6.2.0] CreateServer) |
|- | |- | ||
− | | 101 || [[# | + | | 101 || [7.0.0+] [[#ResumeUserMigrationServer|ResumeUserMigrationServer]] ([4.0.0-6.2.0] ResumeServer) |
|- | |- | ||
− | | 200 || [[# | + | | 200 || [7.0.0+] [[#CreateUserMigrationClient|CreateUserMigrationClient]] ([4.0.0-6.2.0] CreateClient) |
|- | |- | ||
− | | 201 || [[# | + | | 201 || [7.0.0+] [[#ResumeUserMigrationClient|ResumeUserMigrationClient]] ([4.0.0-6.2.0] ResumeClient) |
|- | |- | ||
− | | 1001 || [8.0.0+] | + | | 1001 || [8.0.0+] [[#GetSaveDataMigrationPolicyInfoAsync|GetSaveDataMigrationPolicyInfoAsync]] |
|- | |- | ||
− | | 1010 || [7.0.0+] | + | | 1010 || [7.0.0+] TryGetLastSaveDataMigrationInfo |
|- | |- | ||
− | | 1100 || [7.0.0+] | + | | 1100 || [7.0.0+] [[#CreateSaveDataMigrationServer|CreateSaveDataMigrationServer]] |
|- | |- | ||
− | | 1101 || [7.0.0+] | + | | 1101 || [7.0.0+] [[#ResumeSaveDataMigrationServer|ResumeSaveDataMigrationServer]] |
|- | |- | ||
| 1110 || [17.0.0+] | | 1110 || [17.0.0+] | ||
|- | |- | ||
− | | 1200 || [7.0.0+] | + | | 1200 || [7.0.0+] [[#CreateSaveDataMigrationClient|CreateSaveDataMigrationClient]] |
|- | |- | ||
− | | 1201 || [7.0.0+] | + | | 1201 || [7.0.0+] [[#ResumeSaveDataMigrationClient|ResumeSaveDataMigrationClient]] |
|} | |} | ||
− | == | + | == CreateUserMigrationServer == |
Takes a total of 0x18-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IServer]]. | 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]]. | 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]]. | 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]]. | Takes an input u32, a TransferMemory handle, returns an [[#IClient]]. | ||
− | == | + | == GetSaveDataMigrationPolicyInfoAsync == |
Takes an [[NCM_services#ApplicationId|ApplicationId]], returns an [[#IAsyncSaveDataMigrationPolicyInfoContext]]. | Takes an [[NCM_services#ApplicationId|ApplicationId]], returns an [[#IAsyncSaveDataMigrationPolicyInfoContext]]. | ||
Line 56: | Line 56: | ||
This starts a network request for [[Network|save_data_migration_policy]]. | This starts a network request for [[Network|save_data_migration_policy]]. | ||
− | == | + | == CreateSaveDataMigrationServer == |
Takes a total of 0x20-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IServer_2|IServer]]. | Takes a total of 0x20-bytes of input, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IServer_2|IServer]]. | ||
− | == | + | == 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]]. | ||
− | == | + | == CreateSaveDataMigrationClient == |
Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | Takes an input u32, a type-0x19 input buffer, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | ||
− | == | + | == ResumeSaveDataMigrationClient == |
Takes an input u32, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | Takes an input u32, a TransferMemory handle, returns an [[#IClient_2|IClient]]. | ||
Line 96: | Line 96: | ||
|- | |- | ||
| 500 || Abort | | 500 || Abort | ||
− | |||
|} | |} | ||
Line 145: | Line 144: | ||
|- | |- | ||
| 999 || DebugSynchronizeStateInFinalizationAsync | | 999 || DebugSynchronizeStateInFinalizationAsync | ||
− | |||
|} | |} | ||
Line 162: | Line 160: | ||
|- | |- | ||
| 3 || GetResult | | 3 || GetResult | ||
− | |||
|} | |} | ||
Line 192: | Line 189: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || GetUid |
|- | |- | ||
− | | 1 || | + | | 1 || GetApplicationId |
|- | |- | ||
− | | 2 || | + | | 2 || GetServerProfile |
|- | |- | ||
− | | 3 || [17.0.0+] | + | | 3 || [17.0.0+] ListApplicationIds |
|- | |- | ||
− | | 100 || | + | | 100 || PrepareAsync |
|- | |- | ||
− | | 101 || | + | | 101 || GetConnectionRequirement |
|- | |- | ||
− | | 200 || | + | | 200 || WaitConnectionAsync |
|- | |- | ||
− | | 201 || | + | | 201 || GetClientProfile |
|- | |- | ||
− | | 210 || [8.0.0+] | + | | 210 || [8.0.0+] WaitAcceptanceAsync |
|- | |- | ||
− | | 300 || | + | | 300 || ProcessTransferAsync |
|- | |- | ||
− | | 400 || | + | | 400 || CompleteAsync |
|- | |- | ||
− | | 500 || | + | | 500 || Abort |
|- | |- | ||
| 510 || [19.0.0+] | | 510 || [19.0.0+] | ||
|- | |- | ||
− | | 998 || [8.0.0+] | + | | 998 || [8.0.0+] DebugTryGetState |
− | |||
− | |||
|- | |- | ||
+ | | 999 || [8.0.0+] DebugWaitStateSynchronizationFinalizedAsync | ||
|} | |} | ||
Line 233: | Line 229: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || GetClientProfile |
|- | |- | ||
− | | 100 || | + | | 100 || GetConnectionRequirement |
|- | |- | ||
− | | 200 || | + | | 200 || ScanServersAsync |
|- | |- | ||
− | | 201 || | + | | 201 || ListServers |
|- | |- | ||
− | | 210 || | + | | 210 || ConnectByServerIdAsync |
|- | |- | ||
− | | 220 || [8.0.0+] | + | | 220 || [8.0.0+] AcceptAsync |
|- | |- | ||
− | | 221 || [8.0.0+] | + | | 221 || [8.0.0+] DeclineAsync |
|- | |- | ||
− | | 300 || | + | | 300 || GetStorageShortfall |
|- | |- | ||
− | | 301 || | + | | 301 || GetTotalTransferInfo |
|- | |- | ||
− | | 302 || | + | | 302 || GetImmigrantUid |
|- | |- | ||
− | | 303 || | + | | 303 || GetApplicationId |
|- | |- | ||
− | | 304 || [17.0.0+] | + | | 304 || [17.0.0+] ListApplicationIds |
|- | |- | ||
− | | 310 || | + | | 310 || GetCurrentTransferInfo |
|- | |- | ||
− | | 320 || | + | | 320 || TransferNextAsync |
|- | |- | ||
− | | 350 || | + | | 350 || SuspendAsync |
|- | |- | ||
− | | 400 || | + | | 400 || CompleteAsync |
|- | |- | ||
− | | 500 || | + | | 500 || Abort |
|- | |- | ||
| 510 || [19.0.0+] | | 510 || [19.0.0+] | ||
|- | |- | ||
− | | 996 || [8.0.0+] | + | | 996 || [8.0.0+] DebugTryGetState |
− | |||
− | |||
|- | |- | ||
− | | | + | | 997 || [8.0.0+] DebugSynchronizeStateInFinalization0Async |
|- | |- | ||
− | | | + | | 998 || [8.0.0+] DebugSynchronizeStateInFinalization1Async |
|- | |- | ||
+ | | 999 || DebugSynchronizeStateFinalizedAsync | ||
|} | |} | ||
[[Category:Services]] | [[Category:Services]] |
Revision as of 20:10, 19 March 2025
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 |