Application Manager Services: Difference between revisions

Steveice10 (talk | contribs)
ElementW (talk | contribs)
m Add am:pipe anchor
 
(40 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Services]]
__TOC__
 
{{Anchor|AM}}
= Application Manager services "am:sys", "am:u", "am:net" =
= Application Manager services "am:sys", "am:u", "am:net" =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 8: Line 8:
|-
|-
| 0x00010040
| 0x00010040
| [[AM:GetTitleCount|GetTitleCount]]
| [[AM:GetNumPrograms|GetNumPrograms]]
|-
|-
| 0x00020082
| 0x00020082
| [[AM:GetTitleList|GetTitleList]]
| [[AM:GetProgramList|GetProgramList]]
|-
|-
| 0x00030084
| 0x00030084
| [[AM:GetTitleInfo|GetTitleInfo]]
| [[AM:GetProgramInfos|GetProgramInfos]]
|-
|-
| 0x000400C0
| 0x000400C0
| [[AM:DeleteApplicationTitle|DeleteApplicationTitle]]
| [[AM:DeleteUserProgram|DeleteUserProgram]]
|-
|-
| 0x000500C0
| 0x000500C0
| [[AM:GetTitleProductCode|GetTitleProductCode]]
| [[AM:GetProductCode|GetProductCode]]
|-
|-
| 0x000600C0
| 0x000600C0
| [[AM:GetTitleExtDataId|GetTitleExtDataId]]
| [[AM:GetStorageId|GetStorageId]]
|-
|-
| 0x00070080
| 0x00070080
Line 29: Line 29:
|-
|-
| 0x00080000
| 0x00080000
| [[AM:GetTicketCount|GetTicketCount]]
| [[AM:GetNumTickets|GetNumTickets]]
|-
|-
| 0x00090082
| 0x00090082
Line 35: Line 35:
|-
|-
| 0x000A0000
| 0x000A0000
| [[AM:GetDeviceID|GetDeviceID]]
| [[AM:GetDeviceId|GetDeviceId]]
|-
|-
| 0x000B0040
| 0x000B0040
|?
| [[AM:GetNumImportTitleContexts|GetNumImportTitleContexts]]
|-
|-
| 0x000C0082
| 0x000C0082
|?
| [[AM:GetImportTitleContextList|GetImportTitleContextList]]
|-
|-
| 0x000D0084
| 0x000D0084
| [[AM:GetPendingTitleInfo|GetPendingTitleInfo]]
| [[AM:GetImportTitleContexts|GetImportTitleContexts]]
|-
|-
| 0x000E00C0
| 0x000E00C0
| [[AM:DeletePendingTitle|DeletePendingTitle]]
| [[AM:DeleteImportTitleContext|DeleteImportTitleContext]]
|-
|-
| 0x000F00C0
| 0x000F00C0
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x002100C0
| [[AM:GetNumImportContentContexts|GetNumImportContentContexts]]
|-
|-
| 0x00100102
| 0x00100102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00220102
| [[AM:GetImportContentContextList|GetImportContentContextList]]
|-
|-
| 0x00110104
| 0x00110104
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00230104
| [[AM:GetImportContentContexts|GetImportContentContexts]]
|-
|-
| 0x00120102
| 0x00120102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00240102
| [[AM:DeleteImportContentContexts|DeleteImportContentContexts]]
|-
|-
| 0x00130040
| 0x00130040
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003F0040
| [[AM:NeedsCleanup|NeedsCleanup]]
|-
|-
| 0x00140040
| 0x00140040
| [[AM:FinalizePendingTitles|FinalizePendingTitles]]
| [[AM:DoCleanup|DoCleanup]]
|-
|-
| 0x00150040
| 0x00150040
| [[AM:DeleteAllPendingTitles|DeleteAllPendingTitles]]
| [[AM:DeleteAllImportContexts|DeleteAllImportContexts]]
|-
|-
| 0x00160000
| 0x00160000
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00410000
| [[AM:DeleteAllTemporaryPrograms|DeleteAllTemporaryPrograms]]
|-
|-
| 0x00170044
| 0x00170044
|?
| [[AM:ImportTwlBackupLegacy|ImportTwlBackupLegacy]]
|-
|-
| 0x00180080
| 0x00180080
Line 80: Line 80:
|-
|-
| 0x00190040
| 0x00190040
| [[AM:QueryAvailableExternalTitleDatabase|QueryAvailableExternalTitleDatabase]]
| [[AM:QueryAvailableTitleDatabase|QueryAvailableTitleDatabase]]
|-
|-
| 0x001A00C0
| 0x001A00C0
| [[AM:GetDSiWareExportSize|GetDSiWareExportSize]]
| [[AM:CalcTwlBackupSize|CalcTwlBackupSize]]
|-
|-
| 0x001B0144
| 0x001B0144
| [[AM:ExportDSiWare|ExportDSiWare]]
| [[AM:ExportTwlBackup|ExportTwlBackup]]
|-
|-
| 0x001C0084
| 0x001C0084
| [[AM:ImportDSiWare|ImportDSiWare]]
| [[AM:ImportTwlBackup|ImportTwlBackup]]
|-
|-
| 0x001D0000
| 0x001D0000
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00510000
| [[AM:DeleteAllTwlUserPrograms|DeleteAllTwlUserPrograms]]
|-
|-
| 0x001E00C8
| 0x001E00C8
| DSiWare related.
| [[AM:ReadTwlBackupInfo|ReadTwlBackupInfo]]
|-
|-
| 0x001F0040
| 0x001F0040
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00520040
| [[AM:DeleteAllExpiredUserPrograms|DeleteAllExpiredUserPrograms]]
|-
|-
| 0x00200000
| 0x00200000
| [[AM:GetTWLPartitionInfo|GetTWLPartitionInfo]]
| [[AM:GetTwlArchiveResourceInfo|GetTwlArchiveResourceInfo]]
|-
|-
| 0x00210042
| 0x00210042
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x004C0042
| [[AM:GetPersonalizedTicketInfoList|GetPersonalizedTicketInfoList]]
|-
|-
| 0x00220080
| 0x00220080
| [[AM:DeletePendingTitles|DeletePendingTitles]]
| [[AM:DeleteAllImportContextsFiltered|DeleteAllImportContextsFiltered]]
|-
|-
| 0x00230080
| 0x00230080
| [[AM:GetPendingTitleCount|GetPendingTitleCount]]
| [[AM:GetNumImportTitleContextsFiltered|GetNumImportTitleContextsFiltered]]
|-
|-
| 0x002400C2
| 0x002400C2
| [[AM:GetPendingTitleList|GetPendingTitleList]]
| [[AM:GetImportTitleContextListFiltered|GetImportTitleContextListFiltered]]
|-
|-
| 0x002500C0
| 0x002500C0
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005600C0
| [[AM:CheckContentRights|CheckContentRights]]
|-
|-
| 0x00260044
| 0x00260044
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00620044
| [[AM:GetTicketLimitInfos|GetTicketLimitInfos]]
|-
|-
| 0x00270044
| 0x00270044
|?
| [[AM:GetDemoLaunchInfos|GetDemoLaunchInfos]]
|-
|-
| 0x00280108
| 0x00280108
|?
| [[AM:ReadTwlBackupInfoEx|ReadTwlBackupInfoEx]]
|-
|-
| 0x00290082
| 0x00290082
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00670082
| [[AM:DeleteUserProgramsAtomically|DeleteUserProgramsAtomically]]
|-
|-
| 0x002A00C0
| 0x002A00C0
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x006A00C0
| [[AM:GetNumExistingContentInfos|GetNumExistingContentInfos]]
|-
|-
| 0x002B0142
| 0x002B0142
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x006B0142
| [[AM:ListExistingContentInfos|ListExistingContentInfos]]
|-
|-
| 0x002C0084
| 0x002C0084
|?
| [[AM:GetProgramInfosIgnorePlatform|GetProgramInfosIgnorePlatform]]
|-
|-
| 0x002D00C0
| 0x002D00C0
|?
| [[AM:CheckContentRightsIgnorePlatform|CheckContentRightsIgnorePlatform]]
|}
|}


Line 225: Line 225:
|}
|}


{{Anchor|AMAPP}}{{Anchor|am:app}}
= Application Manager service "am:app" =
= Application Manager service "am:app" =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 232: Line 233:
|-
|-
| 0x100100C0
| 0x100100C0
| [[AM:GetNumContentInfos|GetNumContentInfos]]
| [[AM:GetDLCContentInfoCount|GetDLCContentInfoCount]]
|-
|-
| 0x10020104
| 0x10020104
| [[AM:FindContentInfos|FindContentInfos]]
| [[AM:FindDLCContentInfos|FindDLCContentInfos]]
|-
|-
| 0x10030142
| 0x10030142
| [[AM:ListContentInfos|ListContentInfos]]
| [[AM:ListDLCContentInfos|ListDLCContentInfos]]
|-
|-
| 0x10040102
| 0x10040102
| [[AM:DeleteContents|DeleteContents]]
| [[AM:DeleteDLCContents|DeleteDLCContents]]
|-
|-
| 0x10050084
| 0x10050084
| [[AM:GetDataTitleInfos|GetDataTitleInfos]]
| [[AM:GetDLCTitleInfos|GetDLCTitleInfos]]
|-
|-
| 0x10060080
| 0x10060080
| [[AM:GetNumDataTitleTickets|GetNumDataTitleTickets]]
| [[AM:GetDLCOrLicenseNumTickets|GetDLCOrLicenseNumTickets]]
|-
|-
| 0x10070102
| 0x10070102
| [[AM:ListDataTitleTicketInfos|ListDataTitleTicketInfos]]
| [[AM:ListDLCOrLicenseTicketInfos|ListDLCOrLicenseTicketInfos]]
|-
|-
| 0x100801C2
| 0x100801C2
| [[AM:GetItemRights|GetItemRights]]
| [[AM:GetDLCOrLicenseItemRights|GetDLCOrLicenseItemRights]]
|-
|-
| 0x100900C0
| 0x100900C0
| [[AM:IsDataTitleInUse|IsDataTitleInUse]]
| [[AM:IsDLCTitleInUse|IsDLCTitleInUse]]
|-
|-
| 0x100A0000
| 0x100A0000
| [[AM:IsExternalTitleDatabaseInitialized|IsExternalTitleDatabaseInitialized]]
| [[AM:ReloadSDTitleDatabase|ReloadSDTitleDatabase]]
|-
|-
| 0x100B00C0
| 0x100B00C0
| [[AM:GetNumExistingContentInfos|GetNumExistingContentInfos]]
| [[AM:GetNumDLCExistingContentInfos|GetNumDLCExistingContentInfos]]
|-
|-
| 0x100C0142
| 0x100C0142
| [[AM:ListExistingContentInfos|ListExistingContentInfos]]
| [[AM:ListDLCExistingContentInfos|ListDLCExistingContentInfos]]
|-
|-
| 0x100D0084
| 0x100D0084
Line 271: Line 272:
|}
|}


The only commands accessible with this service are listed under this section.
{{Anchor|AMSYS}}{{Anchor|am:sys}}
= Application Manager service "am:sys" =
= Application Manager service "am:sys" =
This service only has access to the 0x00XX* commands listed above, and the "am:app" commands.


{{Anchor|AMU}}{{Anchor|am:u}}
= Application Manager service "am:u" =
= Application Manager service "am:u" =


= Application Manager service "am:pipe" =
{{Anchor|AMNET}}{{Anchor|am:net}}
 
= Application Manager network service "am:net" =
= Application Manager network service "am:net" =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 284: Line 289:
|-
|-
| 0x08010000
| 0x08010000
| [[AMNet:InstallTicketBegin|InstallTicketBegin]]
| [[AMNet:BeginImportTicket|BeginImportTicket]]
|-
|-
| 0x08020002
| 0x08020002
| [[AMNet:InstallTicketAbort|InstallTicketAbort]]
| [[AMNet:CancelImportTicket|CancelImportTicket]]
|-
|-
| 0x08030002
| 0x08030002
| [[AMNet:InstallTicketFinish|InstallTicketFinish]]
| [[AMNet:EndImportTicket|EndImportTicket]]
|-
|-
| 0x08040100
| 0x08040100
| [[AMNet:InstallTitleBegin|InstallTitleBegin]]
| [[AMNet:BeginImportTitle|BeginImportTitle]]
|-
|-
| 0x08050000
| 0x08050000
| [[AMNet:InstallTitleAbort|InstallTitleAbort]]
| [[AMNet:StopImportTitle|StopImportTitle]]
|-
|-
| 0x080600C0
| 0x080600C0
| [[AMNet:InstallTitleResume|InstallTitleResume]]
| [[AMNet:ResumeImportTitle|ResumeImportTitle]]
|-
|-
| 0x08070000
| 0x08070000
| [[AMNet:InstallTitleAbortTMD|InstallTitleAbortTMD]]
| [[AMNet:CancelImportTitle|CancelImportTitle]]
|-
|-
| 0x08080000
| 0x08080000
| [[AMNet:InstallTitleFinish|InstallTitleFinish]]
| [[AMNet:EndImportTitle|EndImportTitle]]
|-
|-
| 0x080900C2
| 0x080900C2
| [[AMNet:InstallTitlesFinish|InstallTitlesFinish]]
| [[AMNet:CommitImportTitles|CommitImportTitles]]
|-
|-
| 0x080A0000
| 0x080A0000
| [[AMNet:InstallTmdBegin|InstallTmdBegin]]
| [[AMNet:BeginImportTmd|BeginImportTmd]]
|-
|-
| 0x080B0002
| 0x080B0002
| [[AMNet:InstallTmdAbort|InstallTmdAbort]]
| [[AMNet:CancelImportTmd|CancelImportTmd]]
|-
|-
| 0x080C0042
| 0x080C0042
| [[AMNet:InstallTmdFinish|InstallTmdFinish]]
| [[AMNet:EndImportTmd|EndImportTmd]]
|-
|-
| 0x080D0042
| 0x080D0042
| [[AMNet:InstallTitleSetContentIndices|InstallTitleSetContentIndices]]
| [[AMNet:CreateImportContentContexts|CreateImportContentContexts]]
|-
|-
| 0x080E0040
| 0x080E0040
| [[AMNet:InstallContentBegin|InstallContentBegin]]
| [[AMNet:BeginImportContent|BeginImportContent]]
|-
|-
| 0x080F0002
| 0x080F0002
| [[AMNet:InstallContentAbort|InstallContentAbort]]
| [[AMNet:StopImportContent|StopImportContent]]
|-
|-
| 0x08100040
| 0x08100040
| [[AMNet:InstallContentResume|InstallContentResume]]
| [[AMNet:ResumeImportContent|ResumeImportContent]]
|-
|-
| 0x08110002
| 0x08110002
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x001A0000?
| [[AMNet:CancelImportContent|CancelImportContent]]
|-
|-
| 0x08120002
| 0x08120002
| [[AMNet:InstallContentFinish|InstallContentFinish]]
| [[AMNet:EndImportContent|EndImportContent]]
|-
|-
| 0x08130000
| 0x08130000
| [[AMNet:GetTotalContents|GetTotalContents]]
| [[AMNet:GetNumCurrentImportContentContexts|GetNumCurrentImportContentContexts]]
|-
|-
| 0x08140042
| 0x08140042
| [[AMNet:GetContentIndexes|GetContentIndexes]]
| [[AMNet:GetCurrentImportContentContextList|GetCurrentImportContentContextList]]
|-
|-
| 0x08150044
| 0x08150044
| [[AMNet:GetContentsInfo|GetContentsInfo]]
| [[AMNet:GetCurrentImportContentContexts|GetCurrentImportContentContexts]]
|-
|-
| 0x08160146
| 0x08160146
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00390146
| [[AMNet:Sign|Sign]]
|-
|-
| 0x08170146
| 0x08170146
| Stubbed; returns 0xF8C083F4
| [[AMNet:Verify|Verify]]
|-
|-
| 0x08180042
| 0x08180042
| [[AMNet:GetCTCert|GetCTCert]]
| [[AMNet:GetDeviceCert|GetDeviceCert]]
|-
|-
| 0x08190108
| 0x08190108
| [[AMNet:SetCertificates|SetCertificates]]
| [[AMNet:ImportCertificates|ImportCertificates]]
|-
|-
| 0x081A0042
| 0x081A0042
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003E0042
| [[AMNet:ImportCertificate|ImportCertificate]]
|-
|-
| 0x081B00C2
| 0x081B00C2
| [[AMNet:InstallTitlesFinishFIRM|InstallTitlesFinishFIRM]]
| [[AMNet:CommitImportTitlesAndUpdateFirmwareAuto|CommitImportTitlesAndUpdateFirmwareAuto]]
|-
|-
| 0x081C0100
| 0x081C0100
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x004B0100
| [[AMNet:DeleteTicketId|DeleteTicketId]]
|-
|-
| 0x081D0080
| 0x081D0080
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00490080
| [[AMNet:GetNumTicketIds|GetNumTicketIds]]
|-
|-
| 0x081E0102
| 0x081E0102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x004A0102
| [[AMNet:GetTicketIdList|GetTicketIdList]]
|-
|-
| 0x081F0080
| 0x081F0080
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005F0080
| [[AMNet:GetNumTicketsOfProgram|GetNumTicketsOfProgram]]
|-
|-
| 0x08200102
| 0x08200102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00600102
| [[AMNet:ListTicketInfos|ListTicketInfos]]
|-
|-
| 0x08210142
| 0x08210142
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00610142
| [[AMNet:ExportLicenseTicket|ExportLicenseTicket]]
|-
|-
| 0x08220000
| 0x08220000
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005B0000
| [[AMNet:GetNumCurrentContentInfos|GetNumCurrentContentInfos]]
|-
|-
| 0x08230044
| 0x08230044
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005C0044
| [[AMNet:FindCurrentContentInfos|FindCurrentContentInfos]]
|-
|-
| 0x08240082
| 0x08240082
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005D0082
| [[AMNet:ListCurrentContentInfos|ListCurrentContentInfos]]
|-
|-
| 0x08250102
| 0x08250102
|?
| [[AMNet:CalculateContextRequiredSize|CalculateContextRequiredSize]]
|-
|-
| 0x08260042
| 0x08260042
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00630042
| [[AMNet:UpdateImportContentContexts|UpdateImportContentContexts]]
|-
|-
| 0x08270000
| 0x08270000
|?
| [[AMNet:DeleteAllDemoLaunchInfos|DeleteAllDemoLaunchInfos]]
|-
|-
| 0x082800C0
| 0x082800C0
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x006C00C0
| [[AMNet:BeginImportTitleForOverWrite|BeginImportTitleForOverWrite]]
|-
| 0x08290184
| [[AMNet:ExportTicketWrapped|ExportTicketWrapped]]
|}
|}


Line 408: Line 416:
|-
|-
!  Command Header
!  Command Header
!  Available since system-version
!  Description
!  Description
|-
|-
| 0x0001....
|
| Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8.
|-
| 0x040100C4
|
| [[AMFile:Control|Control]]
|-
| 0x08010100
|
| [[AMFile:OpenSubFile|OpenSubFile]]
|-
|-
| 0x080200C2
| 0x080200C2
|
| [[AMFile:Read|Read]]
| [[AMFile:Read|Read]]
|-
|-
| 0x08030102
| 0x08030102
|
| [[AMFile:Write|Write]]
| [[AMFile:Write|Write]]
|-
|-
| 0x08040000
| 0x08040000
|
| [[AMFile:GetSize|GetSize]]
| [[AMFile:GetSize|GetSize]]
|-
|-
| 0x08050080
| 0x08050080
|
| [[AMFile:SetSize|SetSize]]
| [[AMFile:SetSize|SetSize]]
|-
| 0x08060000
|
| [[AMFile:GetAttributes|GetAttributes]]
|-
| 0x08070000
|
| [[AMFile:SetAttributes|SetAttributes]]
|-
|-
| 0x08080000
| 0x08080000
|
| [[AMFile:Close|Close]]
| [[AMFile:Close|Close]]
|-
| 0x08090000
|
| [[AMFile:Flush|Flush]]
|-
| 0x080A0000
|
| This just returns 0.
|-
| 0x080B0000
|
| This just returns 0.
|-
| 0x080C0000
|
| This just returns 0.
|}
|}


These are identical to [[Filesystem_services#File_service|FSFile]].
This is similar to [[Filesystem_services#File_service|FSFile]].
 
For handling each command that's actually implemented, the AM cmdhandler function calls a vtable funcptr.
 
{{Anchor|am:pipe}}
The private port for this seems to be referred to as "am:pipe", even though the "am:pipe" string isn't actually used.
 
=Types=
==TicketInfo==
{| class="wikitable" border="1"
|-
!  Offset
!  Length
!  Description
|-
| 0x0
| 0x8
| Title ID
|-
| 0x8
| 0x8
| Ticket ID
|-
| 0x10
| 0x2
| Version
|-
| 0x12
| 0x2
| Padding
|-
| 0x14
| 0x4
| Size
|}
 
==TitleInfo==
{| class="wikitable" border="1"
|-
!  Offset
!  Length
!  Description
|-
| 0x0
| 0x8
| Title ID
|-
| 0x8
| 0x8
| Size
|-
| 0x10
| 0x2
| Version
|-
| 0x12
| 0x2
| Padding
|-
| 0x14
| 0x4
| Type
|}
 
==ContentInfo==
{| class="wikitable" border="1"
|-
!  Offset
!  Length
!  Description
|-
| 0x0
| 0x2
| Index
|-
| 0x2
| 0x2
| [[Title_metadata#Content_Type_flags|Content Type Flags]] from [[Title_metadata|TMD]]
|-
| 0x4
| 0x4
| Content ID
|-
| 0x8
| 0x8
| Size
|-
| 0x10
| 0x1
| Bit 0: Downloaded, Bit 1: Owned
|-
| 0x11
| 0x7
| Padding
|}
 
==ImportTitleContext==
{| class="wikitable" border="1"
|-
!  Offset
!  Length
!  Description
|-
| 0x0
| 0x8
| Title ID
|-
| 0x8
| 0x2
| Version
|-
| 0xA
| 0x2
| State
|-
| 0xC
| 0x4
| Type
|-
| 0x10
| 0x8
| Size
|}
 
===ImportTitleContextState===
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0
| None
|-
| 1
| Waiting for import
|-
| 2
| Resumable
|-
| 3
| Waiting for commit
|-
| 4
| Already exists
|-
| 5
| Deleting
|-
| 6
| Needs cleanup
|}
 
==ImportContentContext==
{| class="wikitable" border="1"
|-
!  Offset
!  Length
!  Description
|-
| 0x0
| 0x4
| Content ID
|-
| 0x4
| 0x2
| Index
|-
| 0x6
| 0x2
| Type
|-
| 0x8
| 0x8
| Size
|-
| 0x10
| 0x8
| Current Install Offset
|}
 
==TwlBackupInfo==
{| class="wikitable" border="1"
|-
! Offset
! Length
! Description
|-
| 0x0
| 0x8
| Title ID
|-
| 0x8
| 0x2
| Group ID
|-
| 0xA
| 0x2
| Title Version
|-
| 0xC
| 0x4
| public.sav size
|-
| 0x10
| 0x4
| private.sav size
|-
| 0x14
| 0x4
| Unused, padding.
|-
| 0x18
| 0x8
| u64, required space in bytes for installation (aligned to 0x4000, used to show amount of blocks in system settings)
|-
|}


=Errors=
=Errors=
See [[Application_Manager_Services_PXI|this]].
See [[Application_Manager_Services_PXI|this]].
[[Category:Services]]