Changes

3,541 bytes added ,  19:16, 28 February 2023
no edit summary
Line 1,574: Line 1,574:     
==== CreateApplicationResource ====
 
==== CreateApplicationResource ====
Returns an [[#IApplicationResource]].
+
Takes an input [[#ApplicationResourceType]]. Returns an [[#IApplicationResource]].
    
==== GetApplicationResource ====
 
==== GetApplicationResource ====
Returns an [[#IApplicationResource]].
+
Takes an input u64 ProcessId and an input [[#ApplicationResourceType]]. Returns an [[#IApplicationResource]].
    
==== RegisterDeviceLockKey ====
 
==== RegisterDeviceLockKey ====
Line 3,414: Line 3,414:     
= ApplicationUpdateInfo =
 
= ApplicationUpdateInfo =
This is "nn::ns::ApplicationUpdateInfo".
+
This is "nn::ns::ApplicationUpdateInfo". This is an u8.
   −
This is an u8. [[qlaunch]] just checks whether this is 0.
+
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || UpToDate
 +
|-
 +
| 1 || Updatable
 +
|}
 +
 
 +
[[qlaunch]] just checks whether this is 0.
    
= ApplicationOccupiedSize =
 
= ApplicationOccupiedSize =
 
This is "nn::ns::ApplicationOccupiedSize". This is a 0x80-byte struct.
 
This is "nn::ns::ApplicationOccupiedSize". This is a 0x80-byte struct.
   −
= ProgressForDeleteUserSaveDataAll =
+
{| class="wikitable" border="1"
This is "nn::ns::detail::ProgressForDeleteUserSaveDataAll". This is a 0x28-byte struct.
+
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x20 * 4 || Array of [[#ApplicationOccupiedSizeEntity]]
 +
|}
   −
= ApplicationViewDeprecated =
+
= ApplicationOccupiedSizeEntity =
This is "nn::ns::ApplicationViewDeprecated". This is a 0x40-byte struct.
+
This is "nn::ns::ApplicationOccupiedSizeEntity". This is a 0x20-byte struct.
 
  −
This is converted from [[#ApplicationView]] by [[#GetApplicationViewDeprecated]] on newer system-versions as follows:
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 3,435: Line 3,449:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x20 || Same as [[#ApplicationView]] +0x0.
+
| 0x0 || 0x1 || [[NCM_services#StorageId|StorageId]]
 
|-
 
|-
| 0x20 || 0x4 || Same as [[#ApplicationView]] +0x20.
+
| 0x1 || 0x7 || Reserved
 
|-
 
|-
| 0x24 || 0x2 || Same as [[#ApplicationView]] +0x24.
+
| 0x8 || 0x8 || AppSize
 
|-
 
|-
| 0x26 || 0x2 || Cleared to 0.
+
| 0x10 || 0x8 || PatchSize
 
|-
 
|-
| 0x28 || 0x10 || Same as [[#ApplicationView]] +0x30.
+
| 0x18 || 0x8 || AocSize
 +
|}
 +
 
 +
= ProgressForDeleteUserSaveDataAll =
 +
This is "nn::ns::detail::ProgressForDeleteUserSaveDataAll". This is a 0x28-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
| 0x38 || 0x4 || Same as [[#ApplicationView]] +0x40.
+
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || StartedAt
 +
|-
 +
| 0x8 || 0x4 || Count
 +
|-
 +
| 0xC || 0x4 || Reserved
 +
|-
 +
| 0x10 || 0x8 || SizeInBytes
 
|-
 
|-
| 0x3C || 0x1 || Same as [[#ApplicationView]] +0x44.
+
| 0x18 || 0x1 || IsSystem
 
|-
 
|-
| 0x3D || 0x2 || Cleared to 0.
+
| 0x19 || 0x7 || Reserved
 
|-
 
|-
| 0x3F || 0x1 || Cleared to 0.
+
| 0x20 || 0x8 || ApplicationId
 
|}
 
|}
   −
= ApplicationView =
+
= ApplicationViewDeprecated =
This is "nn::ns::ApplicationView". This is a 0x50-byte struct.
+
This is "nn::ns::ApplicationViewDeprecated". This is a 0x40-byte struct.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 3,465: Line 3,495:  
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 
|-
 
|-
| 0x8 || 0x4 || ?
+
| 0x8 || 0x4 || Version
 +
|-
 +
| 0xC || 0x4 || [[#ApplicationViewFlag|Flag]]
 
|-
 
|-
| 0xC || 0x4 || Flags
+
| 0x10 || 0x18 || [[#ApplicationDownloadProgress|Progress]]
 
|-
 
|-
| 0x10 || 0x40 || ?
+
| 0x28 || 0x18 || [[#ApplicationApplyDeltaProgress|ApplyProgress]]
 
|}
 
|}
   −
= ApplicationViewWithPromotionInfo =
+
This is converted from [[#ApplicationView]] by [[#GetApplicationViewDeprecated]] on newer system-versions as follows:
This is a 0x70-byte struct.
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 3,481: Line 3,512:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x50 || [[#ApplicationView]]
+
| 0x0 || 0x20 || Same as [[#ApplicationView]] +0x0.
 +
|-
 +
| 0x20 || 0x4 || Same as [[#ApplicationView]] +0x20.
 +
|-
 +
| 0x24 || 0x2 || Same as [[#ApplicationView]] +0x24.
 
|-
 
|-
| 0x50 || 0x20 || [[#PromotionInfo]]
+
| 0x26 || 0x2 || Cleared to 0.
|}
+
|-
 
+
| 0x28 || 0x10 || Same as [[#ApplicationView]] +0x30.
= PromotionInfo =
+
|-
This is a 0x20-byte struct.
+
| 0x38 || 0x4 || Same as [[#ApplicationView]] +0x40.
 +
|-
 +
| 0x3C || 0x1 || Same as [[#ApplicationView]] +0x44.
 +
|-
 +
| 0x3D || 0x2 || Cleared to 0.
 +
|-
 +
| 0x3F || 0x1 || Cleared to 0.
 +
|}
 +
 
 +
= ApplicationViewFlag =
 +
This is "nn::ns::ApplicationViewFlag". This is a 32-bit flag.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Offset
+
! Bit
! Size
   
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x8 || PosixTime start_timestamp.
+
| 0
 +
|  
 +
|-
 +
| 1
 +
|  
 
|-
 
|-
| 0x8 || 0x8 || PosixTime end_timestamp.
+
| 2
 +
|  
 
|-
 
|-
| 0x10 || 0x8 || Remaining time until the promotion ends, in nanoseconds ({end_timestamp - current_time} converted to nanoseconds).
+
| 3
 +
|  
 
|-
 
|-
| 0x18 || 0x4 || Not set, left at zero.
+
| 4
 +
|  
 
|-
 
|-
| 0x1C || 0x1 || Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: u64 +0x10 is set.
+
| 5
 +
|  
 
|-
 
|-
| 0x1D || 0x3 || Padding
+
| 6
|}
+
|  
 
  −
= NoDownloadRightsErrorResolution =
  −
This is "nn::ns::NoDownloadRightsErrorResolution".
  −
 
  −
= BackgroundNetworkUpdateState =
  −
{| class="wikitable" border="1"
   
|-
 
|-
!  Value
+
| 7
!  Description
+
|
 
|-
 
|-
| 0 || No sysupdate task exists.
+
| 8
 +
|  
 
|-
 
|-
| 1 || Sysupdate download in progress.
+
| 9
 +
|  
 
|-
 
|-
| 2 || Sysupdate ready, pending install.
+
| 10
 +
|  
 +
|-
 +
| 11
 +
|
 +
|-
 +
| 12
 +
|
 +
|-
 +
| 13
 +
|
 +
|-
 +
| 14
 +
|
 +
|-
 +
| 15
 +
|
 +
|-
 +
| 16
 +
|
 +
|-
 +
| 17
 +
|  
 
|}
 
|}
   −
This is "nn::ns::BackgroundNetworkUpdateState". This is an u8.
+
= ApplicationDownloadProgress =
 
+
This is "nn::ns::ApplicationDownloadProgress". This is a 0x18-byte struct.
Similar to [[#HasDownloaded]], [[#GetBackgroundNetworkUpdateState]] uses [[NIM_services|nim]] ListSystemUpdateTask and [[NIM_services|nim]] GetSystemUpdateTaskInfo. When ListSystemUpdateTask successfully returns a task and GetSystemUpdateTaskInfo is successful, the output value is set to: <code>1 + *((u8*)(taskinfo+0) == 0x3</code>. Otherwise, value=0.
  −
 
  −
[[#GetBackgroundNetworkUpdateState]] always returns Result 0, however this will assert if GetSystemUpdateTaskInfo fails with ret!=0x3C89.
     −
= SystemUpdateProgress =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 3,537: Line 3,603:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x8 || s64 Current size. This value can be larger than total_size when the async operation is finishing. When total_size is <=0, this current_size field may contain a progress value for when the total_size is not yet determined.
+
| 0x0 || 0x8 || Downloaded
 +
|-
 +
| 0x8 || 0x8 || Total
 +
|-
 +
| 0x10 || 0x4 || LastResult
 
|-
 
|-
| 0x8 || 0x8 || s64 Total size, this field is only valid when >0.
+
| 0x14 || 0x1 || [[#ApplicationDownloadState|State]]
 +
|-
 +
| 0x15 || 0x3 || Reserved
 
|}
 
|}
   −
This is "nn::ns::SystemUpdateProgress". This is a 0x10-byte struct.
+
= ApplicationApplyDeltaProgress =
 
+
This is "nn::ns::ApplicationApplyDeltaProgress". This is a 0x18-byte struct.
Commands which have this as output will return 0 with the output cleared, when no task is available.
  −
 
  −
= EulaDataPath =
  −
This is "nn::ns::detail::EulaDataPath". This is a 0x100-byte struct.
  −
 
  −
This contains a file path.
     −
= SystemDeliveryInfo =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 3,558: Line 3,623:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x4 || SystemDeliveryProtocolVersion. Must be <= to and match [[System_Settings|system-setting]] <code>contents_delivery!system_delivery_protocol_version</code>.
+
| 0x0 || 0x8 || Applied
 
|-
 
|-
| 0x4 || 0x4 || ApplicationDeliveryProtocolVersion. Loaded from [[System_Settings|system-setting]] <code>contents_delivery!application_delivery_protocol_version</code>. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
+
| 0x8 || 0x8 || Total
 
|-
 
|-
| 0x8 || 0x1 || HasExFat. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
+
| 0x10 || 0x4 || LastResult
 
|-
 
|-
| 0x9 || 0x3 || Reserved.
+
| 0x14 || 0x1 || [[#ApplicationApplyDeltaState|State]]
 
|-
 
|-
| 0xC || 0x4 || SystemUpdateMetaVersion.
+
| 0x15 || 0x3 || Reserved
 +
|}
 +
 
 +
= ApplicationDownloadState =
 +
This is "nn::ns::ApplicationDownloadState". This is an u8.
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
| 0x10 || 0x8 || SystemUpdateMetaId.
+
! Value
 +
! Description
 
|-
 
|-
| 0x18 || 0x1 || FirmwareVariationId. Used by [[#RequestSendSystemUpdate]].
+
| 0 || Runnable
 
|-
 
|-
| 0x19 || 0x1 || UpdatableFirmwareGroupId. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
+
| 1 || Suspended
 
|-
 
|-
| 0x1A || 0x1 || PlatformRegion (0x00 = Unknown, 0x01 = Global, 0x02 = China).
+
| 2 || NotEnoughSpace
 
|-
 
|-
| 0x1B || 0xC5 || Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
+
| 3 || Fatal
 
|-
 
|-
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes.
+
| 4 || Finished
 
|}
 
|}
   −
This is "nn::ns::SystemDeliveryInfo". This is a 0x100-byte struct.
+
= ApplicationApplyDeltaState =
 +
This is "nn::ns::ApplicationApplyDeltaState". This is an u8.
   −
= ApplicationDeliveryInfo =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Offset
+
! Value
! Size
   
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x8 || ?
+
| 0 || Applying
 
|-
 
|-
| 0x8 || 0x8 || ApplicationId.
+
| 1 || Suspended
 
|-
 
|-
| 0x10 || 0x4 || ApplicationVersion.
+
| 2 || NotEnoughSpace
|-
  −
| 0x14 || 0x4 || ?
   
|-
 
|-
| 0x18 || 0x4 || RequiredSystemVersion.
+
| 3 || Fatal
 
|-
 
|-
| 0x1C || 0x4 || ?
+
| 4 || NoTask
 
|-
 
|-
| 0x20 || 0xC0 || ?
+
| 5 || WaitApply
 
|-
 
|-
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes. Uses a different key than [[#SystemDeliveryInfo]].
+
| 6 || Applied
 
|}
 
|}
   −
This is "nn::ns::ApplicationDeliveryInfo". This is a 0x100-byte struct.
+
= ApplicationView =
 +
This is "nn::ns::ApplicationView". This is a 0x50-byte struct.
   −
= LatestSystemUpdate =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Offset
! Description
+
! Size
 +
! Description
 
|-
 
|-
| 1 || Unknown.
+
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 
|-
 
|-
| 2 || Unknown.
+
| 0x8 || 0x4 || ?
 +
|-
 +
| 0xC || 0x4 || Flags
 
|-
 
|-
| Other values || Unknown.
+
| 0x10 || 0x40 || ?
 
|}
 
|}
   −
This is "nn::ns::LatestSystemUpdate". This is an u8.
+
= ApplicationViewWithPromotionInfo =
 +
This is a 0x70-byte struct.
   −
= ReceiveApplicationProgress =
+
{| class="wikitable" border="1"
This is "nn::ns::ReceiveApplicationProgress". This is a 0x10-byte struct.
+
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x50 || [[#ApplicationView]]
 +
|-
 +
| 0x50 || 0x20 || [[#PromotionInfo]]
 +
|}
   −
= SendApplicationProgress =
+
= PromotionInfo =
This is "nn::ns::SendApplicationProgress". This is a 0x10-byte struct.
  −
 
  −
= ApplicationRightsOnClient =
   
This is a 0x20-byte struct.
 
This is a 0x20-byte struct.
  −
[[qlaunch]] only uses +0x18/+0x19 in this struct.
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 3,641: Line 3,717:  
! Description
 
! Description
 
|-
 
|-
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
+
| 0x0 || 0x8 || PosixTime start_timestamp.
 
|-
 
|-
| 0x8 || 0x10 || [[Account_services#Uid|Uid]]
+
| 0x8 || 0x8 || PosixTime end_timestamp.
 
|-
 
|-
| 0x18 || 0x1 || Flags, [[qlaunch]] only uses bit0-bit4 and bit7.
+
| 0x10 || 0x8 || Remaining time until the promotion ends, in nanoseconds ({end_timestamp - current_time} converted to nanoseconds).
|-
+
|-
| 0x19 || 0x1 || Flags, [[qlaunch]] only uses bit0.
+
| 0x18 || 0x4 || Not set, left at zero.
|-
+
|-
| 0x1A || 0x6 || Unknown
+
| 0x1C || 0x1 || Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: u64 +0x10 is set.
|}
+
|-
 +
| 0x1D || 0x3 || Padding
 +
|}
 +
 
 +
= ApplicationResourceType =
 +
This is "nn::ns::ApplicationResourceType". This is an u8.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || ApplicationResource
 +
|-
 +
| 1 || MicroApplicationResource
 +
|}
 +
 
 +
= NoDownloadRightsErrorResolution =
 +
This is "nn::ns::NoDownloadRightsErrorResolution".
 +
 
 +
= BackgroundNetworkUpdateState =
 +
This is "nn::ns::BackgroundNetworkUpdateState". This is an u8.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || None
 +
|-
 +
| 1 || InProgress
 +
|-
 +
| 2 || Ready
 +
|}
 +
 
 +
Similar to [[#HasDownloaded]], [[#GetBackgroundNetworkUpdateState]] uses [[NIM_services|nim]] ListSystemUpdateTask and [[NIM_services|nim]] GetSystemUpdateTaskInfo. When ListSystemUpdateTask successfully returns a task and GetSystemUpdateTaskInfo is successful, the output value is set to: <code>1 + *((u8*)(taskinfo+0) == 0x3</code>. Otherwise, value=0.
 +
 
 +
[[#GetBackgroundNetworkUpdateState]] always returns Result 0, however this will assert if GetSystemUpdateTaskInfo fails with ret!=0x3C89.
 +
 
 +
= SystemUpdateProgress =
 +
This is "nn::ns::SystemUpdateProgress". This is a 0x10-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || Loaded (this value can be larger than total_size when the async operation is finishing and when total_size is <=0, this current_size field may contain a progress value for when the total_size is not yet determined)
 +
|-
 +
| 0x8 || 0x8 || Total (this field is only valid when >0)
 +
|}
 +
 
 +
Commands which have this as output will return 0 with the output cleared, when no task is available.
 +
 
 +
= EulaDataPath =
 +
This is "nn::ns::detail::EulaDataPath". This is a 0x100-byte struct.
 +
 
 +
This contains a file path.
 +
 
 +
= SystemDeliveryInfo =
 +
This is "nn::ns::SystemDeliveryInfo". This is a 0x100-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x4 || SystemDeliveryProtocolVersion. Must be <= to and match [[System_Settings|system-setting]] <code>contents_delivery!system_delivery_protocol_version</code>.
 +
|-
 +
| 0x4 || 0x4 || ApplicationDeliveryProtocolVersion. Loaded from [[System_Settings|system-setting]] <code>contents_delivery!application_delivery_protocol_version</code>. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
 +
|-
 +
| 0x8 || 0x1 || HasExFat. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
 +
|-
 +
| 0x9 || 0x3 || Reserved.
 +
|-
 +
| 0xC || 0x4 || SystemUpdateMetaVersion.
 +
|-
 +
| 0x10 || 0x8 || SystemUpdateMetaId.
 +
|-
 +
| 0x18 || 0x1 || FirmwareVariationId. Used by [[#RequestSendSystemUpdate]].
 +
|-
 +
| 0x19 || 0x1 || UpdatableFirmwareGroupId. Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
 +
|-
 +
| 0x1A || 0x1 || PlatformRegion (0x00 = Unknown, 0x01 = Global, 0x02 = China).
 +
|-
 +
| 0x1B || 0xC5 || Unused by [[#RequestSendSystemUpdate]]/[[#RequestReceiveSystemUpdate]], besides HMAC validation.
 +
|-
 +
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes.
 +
|}
 +
 
 +
= ApplicationDeliveryInfo =
 +
This is "nn::ns::ApplicationDeliveryInfo". This is a 0x100-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || ?
 +
|-
 +
| 0x8 || 0x8 || ApplicationId.
 +
|-
 +
| 0x10 || 0x4 || ApplicationVersion.
 +
|-
 +
| 0x14 || 0x4 || ?
 +
|-
 +
| 0x18 || 0x4 || RequiredSystemVersion.
 +
|-
 +
| 0x1C || 0x4 || ?
 +
|-
 +
| 0x20 || 0xC0 || ?
 +
|-
 +
| 0xE0 || 0x20 || HMAC-SHA256 over the previous 0xE0-bytes. Uses a different key than [[#SystemDeliveryInfo]].
 +
|}
 +
 
 +
= LatestSystemUpdate =
 +
This is "nn::ns::LatestSystemUpdate". This is an u8.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || UpToDate
 +
|-
 +
| 1 || Downloaded
 +
|-
 +
| 2 || NeedsDownload
 +
|}
 +
 
 +
= ReceiveApplicationProgress =
 +
This is "nn::ns::ReceiveApplicationProgress". This is a 0x10-byte struct.
 +
 
 +
= SendApplicationProgress =
 +
This is "nn::ns::SendApplicationProgress". This is a 0x10-byte struct.
 +
 
 +
= ApplicationRightsOnClient =
 +
This is a 0x20-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 +
|-
 +
| 0x8 || 0x10 || [[Account_services#Uid|Uid]]
 +
|-
 +
| 0x18 || 0x1 || Flags, [[qlaunch]] only uses bit0-bit4 and bit7.
 +
|-
 +
| 0x19 || 0x1 || Flags, [[qlaunch]] only uses bit0.
 +
|-
 +
| 0x1A || 0x6 || Unknown
 +
|}
 +
 
 +
[[qlaunch]] only uses +0x18/+0x19 in this struct.
 +
 
 +
= DownloadTaskStatus =
 +
This is "nn::ns::DownloadTaskStatus". This is a 0x20-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x10 || Uuid
 +
|-
 +
| 0x10 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 +
|-
 +
| 0x18 || 0x1 || [[#DownloadTaskStatusDetail|Detail]]
 +
|-
 +
| 0x19 || 0x1 || NeedsCleanup
 +
|-
 +
| 0x1A || 0x2 || Reserved
 +
|-
 +
| 0x1C || 0x4 || Result
 +
|}
 +
 
 +
= DownloadTaskStatusDetail =
 +
This is "nn::ns::DownloadTaskStatusDetail". This is an u8.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || Created
 +
|-
 +
| 1 || Added
 +
|-
 +
| 2 || AlreadyExists
 +
|-
 +
| 3 || Failed
 +
|}
 +
 
 +
= ApplicationLaunchInfo =
 +
This is a 0x40-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
 +
|-
 +
| 0x8 || 0x4 || Application version
 +
|-
 +
| 0xC || 0x4 || [[Process_Manager_services#LaunchFlags|LaunchFlags]], set to hard-coded value 0xB by [[#GetApplicationLaunchInfo]].
 +
|-
 +
| 0x10 || 0x1 || Application [[NCM_services#StorageId|StorageId]]
 +
|-
 +
| 0x11 || 0x1 || Update [[NCM_services#StorageId|StorageId]]
 +
|-
 +
| 0x12 || 0x2E ||
 +
|}
   −
= DownloadTaskStatus =
+
= UserData =
This is "nn::ns::DownloadTaskStatus". This is a 0x20-byte struct.
+
This is a 0x80-byte struct.
 
  −
= ApplicationLaunchInfo =
  −
This is a 0x40-byte struct.
     −
{| class="wikitable" border="1"
  −
|-
  −
! Offset
  −
! Size
  −
! Description
  −
|-
  −
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
  −
|-
  −
| 0x8 || 0x4 || Application version
  −
|-
  −
| 0xC || 0x4 || [[Process_Manager_services#LaunchFlags|LaunchFlags]], set to hard-coded value 0xB by [[#GetApplicationLaunchInfo]].
  −
|-
  −
| 0x10 || 0x1 || Application [[NCM_services#StorageId|StorageId]]
  −
|-
  −
| 0x11 || 0x1 || Update [[NCM_services#StorageId|StorageId]]
  −
|-
  −
| 0x12 || 0x2E ||
  −
|}
  −
  −
= UserData =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 3,695: Line 3,968:  
|}
 
|}
   −
This is a 0x80-byte struct.
+
= ProfileBase =
 +
This is a 0x38-byte struct.
   −
= ProfileBase =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 3,709: Line 3,982:  
|-
 
|-
 
|}
 
|}
  −
This is a 0x38-byte struct.
      
= Uid =
 
= Uid =