<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaniElectra</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaniElectra"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/DaniElectra"/>
	<updated>2026-04-22T16:44:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList&amp;diff=23692</id>
		<title>BOSSU:GetNsDataIdList</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList&amp;diff=23692"/>
		<updated>2025-08-30T16:16:47Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Internals */ Add more info about first type parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0010|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Filter}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Number of entries that the list can hold (max entries)}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Starting index in the internal NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Starting NS Data ID}}&lt;br /&gt;
{{IPC/MapPointerW|Output NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0010|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Actual number of output entries}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Last index copied to output in the internal NS Data ID list}}&lt;br /&gt;
{{IPC/MapPointerW|Output NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Writes an array of NS Data ID entries (u32) for the program ID of the current session to the output buffer using the provided filters.&lt;br /&gt;
&lt;br /&gt;
==Internals==&lt;br /&gt;
This eventually calls a function with the following type parameters: 0, 1, 1. This function doesn&#039;t use the second type parameter. Afterwards another function is called using the program ID.&lt;br /&gt;
&lt;br /&gt;
The first type parameter is a filter based on the new flag of the NsData:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Allow everything. This will also unset the [[BOSS_Savegame#BOSS_A_TitleInfo|arrival flag]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Only allow entries which don&#039;t have the new flag set. This will also set the [[BOSS_Savegame#BOSS_A_TitleInfo|arrival flag]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Only allow entries which have the new flag set. This will also set the [[BOSS_Savegame#BOSS_A_TitleInfo|arrival flag]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The second type parameter represents the session being used for the command:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Privileged&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The third type parameter is a filter based on the program ID of the session:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Allow everything&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Only allow entries which have a target program ID matching the program ID of the session&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hence, this command only lists entries whose program ID matches the one from this session.&lt;br /&gt;
&lt;br /&gt;
=Filter=&lt;br /&gt;
Content filtering is enabled when this word isn&#039;t 0xFFFFFFFF. This is only used for the following: &amp;lt;code&amp;gt;if (filterword_u16high != contentdatatype_u16high || (filterword_u16low &amp;amp; contentdatatype_u16low) == 0) continue;&amp;lt;/code&amp;gt; Hence, filterword_u16high must match contentdatatype_u16high, and the bitmask specified by filterword_u16low must be non-zero in contentdatatype_u16low. The contentdatatype is extracted from the extdata filename, which originates from the [[SpotPass|BOSS-container]]. The NS Data ID for the content entry is only written to the output when processing isn&#039;t skipped due to filtering.&lt;br /&gt;
&lt;br /&gt;
=Start NsDataId=&lt;br /&gt;
This field is only used when the starting index is non-zero or when this field is non-zero.&lt;br /&gt;
&lt;br /&gt;
The NS Data ID at the specified starting index must match this field, otherwise error 0xD840F846 is returned. It will then skip normal content entry processing for this matching entry (cur_wordindex is field is increased by 0x1 before starting the content entry processing loop).&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23684</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23684"/>
		<updated>2025-08-21T17:40:06Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* CfgInfoType */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
This type contains information about an NsData, the fields match exactly with the [[SpotPass#Payload_Content_Header|Payload Content Header]] without the hash and signature. When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Type !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x20 || Everything:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || [[#PriorityLevel|Priority]]. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || [[#ActionCode|ActionCode]]. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 || HeaderField[3] || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || char[32] Header name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x100 || char[256] Header value&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || [[#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || [[#TaskStateCode|TaskStateCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || TaskServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Received HTTP status code when performing the task. Set to 0 for successful codes&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || [[#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The official name for this type is &amp;quot;PropertyType&amp;quot;. The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStateCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==PriorityLevel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || INVALID? || Probably represents an invalid value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || EXPEDITE1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || EXPEDITE2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || EXPEDITE3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || EXPEDITE4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || EXPEDITE5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || EXPEDITE6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || EXPEDITE7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || EXPEDITE8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || EXPEDITE || &lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || HIGH || &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D || MEDIUM || This is the default value inside the games API&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || LOW || &lt;br /&gt;
|-&lt;br /&gt;
| 0xD7 || LOWEST || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDD || LOWEST1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDE || LOWEST2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDF || LOWEST3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE0 || LOWEST4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE1 || LOWEST5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE2 || LOWEST6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE3 || LOWEST7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE4 || LOWEST8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || STOPPED || The task won&#039;t be run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Represents the priority of a task. Any values outside the ones listed above are considered invalid.&lt;br /&gt;
&lt;br /&gt;
==ActionCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || FileList? Action code used for listing files on the BOSS server. May be a generic raw download?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || NsaDownload? Action code for downloading data from the given URL, principally an NsData&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || Upload? Action code for uploading data to the given URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || Action code used by task ID &amp;quot;pl&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || Action code used by task ID &amp;quot;phu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || Action code used by task ID &amp;quot;tiu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || Action code used by task ID &amp;quot;splu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || Action code used for downloading data from DataStore through an Hpp server. Stores notification data?&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || Action code related to DataStore?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || Action code used for StreetPass Relay&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || Action code used for downloading the title version list (versionList.dat)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This represents the action that a task will perform.&lt;br /&gt;
&lt;br /&gt;
==ApInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;apgroup&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;aparea&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;ap&amp;quot; parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the access point the console is connected to.&lt;br /&gt;
&lt;br /&gt;
==CfgInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;c&amp;quot; (two-letter country code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;l&amp;quot; (two-letter language code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;tm&amp;quot; ([[Cfg:GetSystemModel|target model]]) parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the console configuration.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskQuery&amp;diff=23683</id>
		<title>BOSSU:GetTaskQuery</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskQuery&amp;diff=23683"/>
		<updated>2025-08-21T17:38:36Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Link to TaskQueryConfig&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0037|2|4}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task query size}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerW|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0037|1|4}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerW|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the task query to the task for the program ID of the current session. The [[BOSS_Savegame#TaskQueryConfig|task query]] is a 0x60-byte structure, so the size is always 0x60.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:SetTaskQuery&amp;diff=23682</id>
		<title>BOSSU:SetTaskQuery</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:SetTaskQuery&amp;diff=23682"/>
		<updated>2025-08-21T17:37:50Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Link to TaskQueryConfig&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0036|2|4}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task query size}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0036|1|4}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Sets a task query to the task for the program ID of the current session. The [[BOSS_Savegame#TaskQueryConfig|task query]] is a 0x60-byte structure, so the size is always 0x60.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23681</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23681"/>
		<updated>2025-08-21T17:36:39Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* PropertyIDs */ Corrections on TaskStateCode and CommErrorCode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
This type contains information about an NsData, the fields match exactly with the [[SpotPass#Payload_Content_Header|Payload Content Header]] without the hash and signature. When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Type !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x20 || Everything:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || [[#PriorityLevel|Priority]]. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || [[#ActionCode|ActionCode]]. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 || HeaderField[3] || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || char[32] Header name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x100 || char[256] Header value&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || [[#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || [[#TaskStateCode|TaskStateCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || TaskServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Received HTTP status code when performing the task. Set to 0 for successful codes&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || [[#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The official name for this type is &amp;quot;PropertyType&amp;quot;. The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStateCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==PriorityLevel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || INVALID? || Probably represents an invalid value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || EXPEDITE1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || EXPEDITE2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || EXPEDITE3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || EXPEDITE4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || EXPEDITE5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || EXPEDITE6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || EXPEDITE7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || EXPEDITE8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || EXPEDITE || &lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || HIGH || &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D || MEDIUM || This is the default value inside the games API&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || LOW || &lt;br /&gt;
|-&lt;br /&gt;
| 0xD7 || LOWEST || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDD || LOWEST1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDE || LOWEST2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDF || LOWEST3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE0 || LOWEST4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE1 || LOWEST5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE2 || LOWEST6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE3 || LOWEST7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE4 || LOWEST8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || STOPPED || The task won&#039;t be run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Represents the priority of a task. Any values outside the ones listed above are considered invalid.&lt;br /&gt;
&lt;br /&gt;
==ActionCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || FileList? Action code used for listing files on the BOSS server. May be a generic raw download?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || NsaDownload? Action code for downloading data from the given URL, principally an NsData&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || Upload? Action code for uploading data to the given URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || Action code used by task ID &amp;quot;pl&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || Action code used by task ID &amp;quot;phu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || Action code used by task ID &amp;quot;tiu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || Action code used by task ID &amp;quot;splu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || Action code used for downloading data from DataStore through an Hpp server. Stores notification data?&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || Action code related to DataStore?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || Action code used for StreetPass Relay&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || Action code used for downloading the title version list (versionList.dat)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This represents the action that a task will perform.&lt;br /&gt;
&lt;br /&gt;
==ApInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;apgroup&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;aparea&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;ap&amp;quot; parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the access point the console is connected to.&lt;br /&gt;
&lt;br /&gt;
==CfgInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;c&amp;quot; (two-letter country code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;l&amp;quot; (two-letter language code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;tm&amp;quot; ([[Cfg:GetSystemModel|target model]]) parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the console configuration.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Savegame&amp;diff=23680</id>
		<title>BOSS Savegame</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Savegame&amp;diff=23680"/>
		<updated>2025-08-21T17:34:54Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Expand proper documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the content of the [[SpotPass|BOSS]] sysmodule savegame.&lt;br /&gt;
&lt;br /&gt;
The savegame contains the following files with no directories:&lt;br /&gt;
&lt;br /&gt;
==BOSS_A.db==&lt;br /&gt;
This file is a database containing information about applications and their session on BOSS.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || Magic Number (0x12348000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After that, an array of data entries with a size of 0x800 follow.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x10 || [[#BOSS_A_EntryHeader|BOSS_A_EntryHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x120 || [[#BOSS_A_TitleInfo|BOSS_A_TitleInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x130 || 0x304 || [[#BOSS_A_Certs|BOSS_A_Certs]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x434 || 0x4 || u32, Unknown. Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x438 || 0x3C8 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_A_EntryHeader===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || u64, Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x1 || bool, Valid&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 || u8, Version. Latest version is 3&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x6 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_A_TitleInfo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || u64, Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x1 || u8, Session maker (1: User, 2: Privileged)&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 || bool, Optout flag&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x1 || bool, Arrival flag&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x5 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x20 || [[#StorageEntry|StorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0xF0 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===StorageEntry===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || bool, Registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8, MediaType (0: NAND, 1: SD)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x2 || u16, Entry ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, Storage size&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8 || u64, Extdata ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x3 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x2 || u16, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x2 || u16, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_A_Certs===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8, Root CA count (stubbed to 0)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x3 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x100 || char[256][1], Root CA path&lt;br /&gt;
|-&lt;br /&gt;
| 0x104 || 0x100 || char[256], Client certificate path&lt;br /&gt;
|-&lt;br /&gt;
| 0x204 || 0x100 || char[256], Client certificate key path&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS_SS.db==&lt;br /&gt;
This file is a database containing static information about tasks.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || Magic Number (0x12348000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After that, an array of data entries with a size of 0xC00 follow. An index of this array corresponds to the data with same index in BOSS_SV.db&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || [[#BOSS_SS_EntryHeader|BOSS_SS_EntryHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x7D4 || [[#TaskActionConfig|TaskActionConfig]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7D8 || 0xC || [[#TaskOptionConfig|TaskOptionConfig]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x7E4 || 0x60 || [[#TaskQueryConfig|TaskQueryConfig]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x844 || 0x3BC || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_SS_EntryHeader===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8, Version. Latest version is 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x3 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TaskActionConfig===&lt;br /&gt;
Check the matching [[BOSS_Services#PropertyIDs|properties]] for more information about these fields.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8, [[BOSS_Services#ActionCode|ActionCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8, FS Root CA&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x1 || u8, FS Client Cert&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || u8, [[BOSS_Services#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x1 || u8, Property 0x9&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8, [[BOSS_Services#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x2 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || u32, Property 0x16&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || u32, Property 0x8&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || u32, Property 0x3B&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || Handle, File handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x200 || Action data&lt;br /&gt;
|-&lt;br /&gt;
| 0x218 || 0x200 || char[512], URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x418 || 0x360 || HeaderFields&lt;br /&gt;
|-&lt;br /&gt;
| 0x790 || 0xC || u32[3], Root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x79C || 0x4 || u32[1], Client certificates&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A0 || 0x4 || u32, Root CA Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A4 || 0x4 || u32, Client certificate count&lt;br /&gt;
|-&lt;br /&gt;
| 0x7A8 || 0x4 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7AC || 0x40 || Property 0x15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TaskOptionConfig===&lt;br /&gt;
Check the matching [[BOSS_Services#PropertyIDs|properties]] for more information about these fields.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8, Property 0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8, Property 0x19&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x1 || u8, Property 0x1A&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, Property 0x1B&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || u32, Property 0x1C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TaskQueryConfig===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x60 || QueryField[3]. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || bool, Used&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0xF || char[15], Query name&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || char[16], Query value&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS_SV.db==&lt;br /&gt;
This file is a database containing variable information about tasks.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || Magic Number (0x12348000)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After that, an array of data entries with a size of 0xC00 follow. An index of this array corresponds to the data with same index in BOSS_SS.db&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || [[#BOSS_SV_EntryHeader|BOSS_SV_EntryHeader]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x10 || [[#TaskPolicyConfig|TaskPolicyConfig]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x78 || [[#TaskStatusInfo|TaskStatusInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0xA8 || 0x1E0 || [[#BOSS_SV_Unk1|BOSS_SV_Unk1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x288 || 0x5A8 || [[#BOSS_SV_Unk2|BOSS_SV_Unk2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x830 || 0x108 || [[#BOSS_SV_Unk3|BOSS_SV_Unk3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x938 || 0x2C8 || Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_SV_EntryHeader===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x3 || Magic: [0x41, 0x01, 0x01]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || u8, Version. Latest version is 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0xC || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x8 || u64, Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x8 || char[8], Task ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TaskPolicyConfig===&lt;br /&gt;
Check the matching [[BOSS_Services#PropertyIDs|properties]] for more information about these fields.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 [[BOSS_Services#PriorityLevel|PriorityLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8, SchedulingPolicy&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x1 || u8, TaskPermission&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || Padding?&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, TaskTargetDuration&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || u32, Interval&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || u32, Count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TaskStatusInfo===&lt;br /&gt;
Check the matching [[BOSS_Services#PropertyIDs|properties]] for more information about these fields.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || u64, LastSuccessfulTimestamp&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x8 || u64, Property 0x29&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8, [[BOSS_Services#TaskStateCode|TaskStateCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8, Property 0x1E&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8, property 0x1F&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x1 || u8, TaskServiceStatus&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x1 || u8, Property 0x22&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x1 || u8, TaskResultCode&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x2 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x4 || u32, CommErrorCode&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 || u32, Property 0x25&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || u32, Property 0x26&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x4 || u32, Property 0x27&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x4 || u32, Property 0x2A&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x4 || u32, Property 0x2B&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x2 || u16, Property 0x2D&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x2 || u16, Property 0x2E&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x1 || u8, Property 0x2C&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x1 || u8, Property 0x24&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x2 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x40 || char[64], LastModifiedHeader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_SV_Unk1===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x3 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x1 || u8, Task type (0: Normal, 1: Immediate, 2: Background immediate)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x40 || char[64], Timestamp?&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || 0x180 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_SV_Unk2===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x220 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x228 || 0x20 || [[#StorageEntry|StorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x248 || 0x360 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BOSS_SV_Unk3===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32, Unknown result&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || u32, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0xFC || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS_PH_INFO.db==&lt;br /&gt;
&lt;br /&gt;
==BOSS_PM_INFO.db==&lt;br /&gt;
&lt;br /&gt;
==BOSS_SP_INFO.db==&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterPrivateClientCert&amp;diff=23679</id>
		<title>BOSSU:RegisterPrivateClientCert</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterPrivateClientCert&amp;diff=23679"/>
		<updated>2025-08-21T14:56:46Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Clarify ascii85 encoding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0006|2|4}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Client certificate size}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Client certificate key size}}&lt;br /&gt;
{{IPC/MapPointerR|Input client certificate buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Input client certificate key buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0006|1|4}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Input client certificate buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Input client certificate key buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
This registers a private client certificate to be used by BOSS for the program ID of the current session. The certificate is saved to the BOSS savedata as: &amp;quot;bossdb:/%s_CL&amp;quot; and the certificate key is saved as: &amp;quot;bossdb:/%s_CLK&amp;quot;, where %s goes the program ID Ascii85 encoded.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterPrivateRootCa&amp;diff=23678</id>
		<title>BOSSU:RegisterPrivateRootCa</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterPrivateRootCa&amp;diff=23678"/>
		<updated>2025-08-21T14:56:26Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Clarify ascii85 encoding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0005|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Buffer size}}&lt;br /&gt;
{{IPC/MapPointerR|Input root CA buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0005|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Input root CA buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
This registers a private root certificate to be used by BOSS for the program ID of the current session. The certificate is saved to the BOSS savedata as: &amp;quot;bossdb:/%s_CA%d&amp;quot;, where %s goes the program ID Ascii85 encoded and %d is the index of the root certificate.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=SpotPass&amp;diff=23677</id>
		<title>SpotPass</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=SpotPass&amp;diff=23677"/>
		<updated>2025-08-21T14:54:16Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Payload Content Header */ Expand documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SpotPass&#039;&#039;&#039; is a Nintendo 3DS feature that allows the 3DS to automatically download content, notifications, and software when it&#039;s in standby mode.(SpotPass may download/upload some content while the 3DS is in &amp;quot;active&amp;quot; mode, but *only* if the currently active app uses SpotPass) SpotPass can upload content as well. Software downloaded with SpotPass is stored on SD card.&lt;br /&gt;
&lt;br /&gt;
SpotPass Internet communications are mostly HTTPS transfers.&lt;br /&gt;
&lt;br /&gt;
In System Settings, you can disable SpotPass automatic title downloading, but it states that important software will still downloaded.(This only disables downloading of free titles via SpotPass)&lt;br /&gt;
&lt;br /&gt;
&#039;nasc.nintendowifi.net&#039; confirmed usages:(not SpotPass related)&lt;br /&gt;
&lt;br /&gt;
*Friends List applet requires this server to be &#039;Online&#039; (most likely the reason for regular requests to this server)&lt;br /&gt;
*Required for initialization of [[eShop]], (for first time eShop users). Not required for using eShop after first use.&lt;br /&gt;
&lt;br /&gt;
In some cases the BOSS module will add the following URL parameter to HTTPS requests, when connected to a [[Nintendo Zone]] AP: &amp;quot;ap=&amp;lt;NZoneApNum&amp;gt;&amp;quot; or when using a specific [[Cfg:GetSystemModel|system model]]: &amp;quot;tm=&amp;lt;SystemModelNumber&amp;gt;&amp;quot;. The Old 3DS and Old 3DS XL don&#039;t set this value.&lt;br /&gt;
&lt;br /&gt;
== policylist ==&lt;br /&gt;
Every time the system connects to the wifi AP, the BOSS (&amp;quot;Background online storage service&amp;quot; = SpotPass) module itself will download the cleartext xml policylist: &amp;quot;https://nppl.c.app.nintendowifi.net/p01/policylist/3/&amp;lt;countrycode&amp;gt;&amp;quot;. This policylist contains a list of SpotPass tasks for certain titles. This policylist can control whether the specified tasks are processed at all.&lt;br /&gt;
&lt;br /&gt;
As of the policylist updated 2017-11-08, this stops the &amp;lt;tt&amp;gt;OlvNotf&amp;lt;/tt&amp;gt; (Miiverse notification sync) task for &amp;lt;tt&amp;gt;000400300000bc00&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;000400300000bd00&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;000400300000be00&amp;lt;/tt&amp;gt; for all regions and &amp;lt;tt&amp;gt;basho0&amp;lt;/tt&amp;gt; for the [[Home Menu]]. Japan also has the &amp;lt;tt&amp;gt;9ER_NTD&amp;lt;/tt&amp;gt; task blocked for いつの間にテレビ (&amp;lt;tt&amp;gt;0004000000034700&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== User Agent ==&lt;br /&gt;
&lt;br /&gt;
The default user-agent used for SpotPass HTTPS requests (including the policylist) has the following format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;user agent codename&amp;gt;-&amp;lt;user agent version&amp;gt;/&amp;lt;printed hex u64 [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]]&amp;gt;-&amp;lt;printed hex u64 [[FRDU:GetMyFriendKey|Friend]] [[FRDU:PrincipalIdToFriendCode|Code]]&amp;gt;/&amp;lt;text [[CVer|system]] [[NVer|version]]&amp;gt;/&amp;lt;CTRSDK version of sysmodule&amp;gt;/&amp;lt;[[Cfg:GetSystemModel|system model number]]&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The codename can be set to either &amp;lt;tt&amp;gt;PBOS&amp;lt;/tt&amp;gt; (Production BOSS?) or &amp;lt;tt&amp;gt;DBOS&amp;lt;/tt&amp;gt; (Development BOSS?) depending if the console is a [[Configuration_Memory#UNITINFO|retail]] unit. As of system version 11.17, the user agent version is hardcoded to 8.0 and the CTRSDK version is set to 62452 (0xF3F4).&lt;br /&gt;
&lt;br /&gt;
No user-agent is used for plaintext HTTP requests with SpotPass.&lt;br /&gt;
&lt;br /&gt;
== Titles Spotpass usage ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Home Menu]]&lt;br /&gt;
| Home Menu uses SpotPass for system notifications, and for uploading data from home-menu shared extdata.&lt;br /&gt;
|-&lt;br /&gt;
| [[System Settings]]&lt;br /&gt;
| System Settings uses SpotPass for uploading data, with this URL: https://npul.c.app.nintendowifi.net/p01/recv/&amp;lt;RegionID&amp;gt;/sendcfg This RegionID is separate from the RegionIDs home-menu uses.&lt;br /&gt;
|-&lt;br /&gt;
| ?&lt;br /&gt;
| Unknown log data is uploaded with this URL: https://logus-p.est.c.app.nintendowifi.net/LogServer_us_live/Upload&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automatic System Update Download ==&lt;br /&gt;
See [[Automatic System Update Download]].&lt;br /&gt;
&lt;br /&gt;
== BOSS Sysmodule Savegame==&lt;br /&gt;
See [[BOSS Savegame]]&lt;br /&gt;
&lt;br /&gt;
== Content Container ==&lt;br /&gt;
&lt;br /&gt;
SpotPass content must use this container to encrypt the payload and sign it, for content downloads. The cleartext content is stored in [[extdata]]. The format of these headers is big-endian.&lt;br /&gt;
&lt;br /&gt;
=== BOSS Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic Number &amp;quot;boss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic Number 0x10001&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Big-endian filesize&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 serial number (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x2&lt;br /&gt;
| Must always be 0x1&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 0x2&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content header hash type, always 0x2 for SHA-256&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content header RSA size, always 0x2 for RSA-2048 (X&amp;lt;&amp;lt;7)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xC&lt;br /&gt;
| First 12 bytes of the Initialization Vector (IV)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Data following the BOSS header is encrypted with AES-CTR. The AES key that is used is stored in [[AES_Registers#Keyslots|keyslot 0x38]]. The first 12 bytes of the IV are from offset 0x1C of the header, while the last 32-bit integer of the IV in big-endian is 0x1. The IV from the header is random per file, and an unique random IV is used each time the content is updated. The cleartext data begins with the content header.&lt;br /&gt;
&lt;br /&gt;
The 64-bit number at 0xC may be a serial number which is increased every time someone requested to sign and create a boss container for a file. The 3DS sees the downloaded file as new if this number is different from the previous download (Doesn&#039;t matter if the number is bigger or smaller).&lt;br /&gt;
&lt;br /&gt;
The boss system module v13314 begins at address 0x0010eb98 with the function for parsing the BOSS header.&lt;br /&gt;
&lt;br /&gt;
=== Content Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| Number of payload contents (Payload Content Header + Payload)&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the above hash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first 0x10-bytes are all-zero except the first byte. If the 7th bit (0x80) is not set, the arrived flag will only be marked if the session for the target program ID was made with a privileged session. Otherwise, the arrived flag will always be marked.&lt;br /&gt;
&lt;br /&gt;
The 16-bit value at 0x10 tells how many payload contents follow after this the content header. For example there can be a downloaded file for a game followed by a message for the news system module.&lt;br /&gt;
&lt;br /&gt;
The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo. Following this header is the actual content payload, which is written to a cleartext file under the [[extdata]] /boss directory.&lt;br /&gt;
&lt;br /&gt;
=== Payload Content Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content datatype, used for filtering with [[BOSSU:GetNsDataIdList]].&lt;br /&gt;
Usually 0x10001? (observed 0x20001 in eShop strings)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of the payload after this header&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[BOSS_Services|NsDataId]], used for generating the extdata filepath.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Probably some version field for the payload&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the previous SHA-256 hash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This signature is signed by Nintendo with the same key-pair as the content header.&lt;br /&gt;
&lt;br /&gt;
The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header (the actual content data).&lt;br /&gt;
&lt;br /&gt;
The file name of the downloaded boss data is Ascii85 encoded with the following data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Length !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x5 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x5 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x5 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0x1 || New flag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The downloaded boss data is written in the following format to extdata. First an extdata header in the following format:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Size of header including this field. Always 0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0x3&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|Additional info]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x8&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|Last update]] in number of seconds since the year 2000&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Followed by the Payload Content Header without the hash and signature (first 0x1C bytes) and the actual payload.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://wiiucodes.ddnss.eu/tools/BossDecryptor3DS.zip BossDecryptor3DS] Decrypts an encrypted boss container&lt;br /&gt;
* [http://wiiucodes.ddnss.eu/tools/BossEncryptor3DS.zip BossEncryptor3DS] Builds and encrypts a file into a boss container&lt;br /&gt;
&lt;br /&gt;
[[Category:Nintendo Software]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=SpotPass&amp;diff=23676</id>
		<title>SpotPass</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=SpotPass&amp;diff=23676"/>
		<updated>2025-08-21T14:42:21Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Content Header */ Document meaning of first byte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SpotPass&#039;&#039;&#039; is a Nintendo 3DS feature that allows the 3DS to automatically download content, notifications, and software when it&#039;s in standby mode.(SpotPass may download/upload some content while the 3DS is in &amp;quot;active&amp;quot; mode, but *only* if the currently active app uses SpotPass) SpotPass can upload content as well. Software downloaded with SpotPass is stored on SD card.&lt;br /&gt;
&lt;br /&gt;
SpotPass Internet communications are mostly HTTPS transfers.&lt;br /&gt;
&lt;br /&gt;
In System Settings, you can disable SpotPass automatic title downloading, but it states that important software will still downloaded.(This only disables downloading of free titles via SpotPass)&lt;br /&gt;
&lt;br /&gt;
&#039;nasc.nintendowifi.net&#039; confirmed usages:(not SpotPass related)&lt;br /&gt;
&lt;br /&gt;
*Friends List applet requires this server to be &#039;Online&#039; (most likely the reason for regular requests to this server)&lt;br /&gt;
*Required for initialization of [[eShop]], (for first time eShop users). Not required for using eShop after first use.&lt;br /&gt;
&lt;br /&gt;
In some cases the BOSS module will add the following URL parameter to HTTPS requests, when connected to a [[Nintendo Zone]] AP: &amp;quot;ap=&amp;lt;NZoneApNum&amp;gt;&amp;quot; or when using a specific [[Cfg:GetSystemModel|system model]]: &amp;quot;tm=&amp;lt;SystemModelNumber&amp;gt;&amp;quot;. The Old 3DS and Old 3DS XL don&#039;t set this value.&lt;br /&gt;
&lt;br /&gt;
== policylist ==&lt;br /&gt;
Every time the system connects to the wifi AP, the BOSS (&amp;quot;Background online storage service&amp;quot; = SpotPass) module itself will download the cleartext xml policylist: &amp;quot;https://nppl.c.app.nintendowifi.net/p01/policylist/3/&amp;lt;countrycode&amp;gt;&amp;quot;. This policylist contains a list of SpotPass tasks for certain titles. This policylist can control whether the specified tasks are processed at all.&lt;br /&gt;
&lt;br /&gt;
As of the policylist updated 2017-11-08, this stops the &amp;lt;tt&amp;gt;OlvNotf&amp;lt;/tt&amp;gt; (Miiverse notification sync) task for &amp;lt;tt&amp;gt;000400300000bc00&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;000400300000bd00&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;000400300000be00&amp;lt;/tt&amp;gt; for all regions and &amp;lt;tt&amp;gt;basho0&amp;lt;/tt&amp;gt; for the [[Home Menu]]. Japan also has the &amp;lt;tt&amp;gt;9ER_NTD&amp;lt;/tt&amp;gt; task blocked for いつの間にテレビ (&amp;lt;tt&amp;gt;0004000000034700&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== User Agent ==&lt;br /&gt;
&lt;br /&gt;
The default user-agent used for SpotPass HTTPS requests (including the policylist) has the following format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;user agent codename&amp;gt;-&amp;lt;user agent version&amp;gt;/&amp;lt;printed hex u64 [[CfgS:GetLocalFriendCodeSeed|LocalFriendCodeSeed]]&amp;gt;-&amp;lt;printed hex u64 [[FRDU:GetMyFriendKey|Friend]] [[FRDU:PrincipalIdToFriendCode|Code]]&amp;gt;/&amp;lt;text [[CVer|system]] [[NVer|version]]&amp;gt;/&amp;lt;CTRSDK version of sysmodule&amp;gt;/&amp;lt;[[Cfg:GetSystemModel|system model number]]&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The codename can be set to either &amp;lt;tt&amp;gt;PBOS&amp;lt;/tt&amp;gt; (Production BOSS?) or &amp;lt;tt&amp;gt;DBOS&amp;lt;/tt&amp;gt; (Development BOSS?) depending if the console is a [[Configuration_Memory#UNITINFO|retail]] unit. As of system version 11.17, the user agent version is hardcoded to 8.0 and the CTRSDK version is set to 62452 (0xF3F4).&lt;br /&gt;
&lt;br /&gt;
No user-agent is used for plaintext HTTP requests with SpotPass.&lt;br /&gt;
&lt;br /&gt;
== Titles Spotpass usage ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Home Menu]]&lt;br /&gt;
| Home Menu uses SpotPass for system notifications, and for uploading data from home-menu shared extdata.&lt;br /&gt;
|-&lt;br /&gt;
| [[System Settings]]&lt;br /&gt;
| System Settings uses SpotPass for uploading data, with this URL: https://npul.c.app.nintendowifi.net/p01/recv/&amp;lt;RegionID&amp;gt;/sendcfg This RegionID is separate from the RegionIDs home-menu uses.&lt;br /&gt;
|-&lt;br /&gt;
| ?&lt;br /&gt;
| Unknown log data is uploaded with this URL: https://logus-p.est.c.app.nintendowifi.net/LogServer_us_live/Upload&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automatic System Update Download ==&lt;br /&gt;
See [[Automatic System Update Download]].&lt;br /&gt;
&lt;br /&gt;
== BOSS Sysmodule Savegame==&lt;br /&gt;
See [[BOSS Savegame]]&lt;br /&gt;
&lt;br /&gt;
== Content Container ==&lt;br /&gt;
&lt;br /&gt;
SpotPass content must use this container to encrypt the payload and sign it, for content downloads. The cleartext content is stored in [[extdata]]. The format of these headers is big-endian.&lt;br /&gt;
&lt;br /&gt;
=== BOSS Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic Number &amp;quot;boss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Magic Number 0x10001&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Big-endian filesize&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x8&lt;br /&gt;
| u64 serial number (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x2&lt;br /&gt;
| Must always be 0x1&lt;br /&gt;
|-&lt;br /&gt;
| 0x16&lt;br /&gt;
| 0x2&lt;br /&gt;
| Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content header hash type, always 0x2 for SHA-256&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| 0x2&lt;br /&gt;
| Content header RSA size, always 0x2 for RSA-2048 (X&amp;lt;&amp;lt;7)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0xC&lt;br /&gt;
| First 12 bytes of the Initialization Vector (IV)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Data following the BOSS header is encrypted with AES-CTR. The AES key that is used is stored in [[AES_Registers#Keyslots|keyslot 0x38]]. The first 12 bytes of the IV are from offset 0x1C of the header, while the last 32-bit integer of the IV in big-endian is 0x1. The IV from the header is random per file, and an unique random IV is used each time the content is updated. The cleartext data begins with the content header.&lt;br /&gt;
&lt;br /&gt;
The 64-bit number at 0xC may be a serial number which is increased every time someone requested to sign and create a boss container for a file. The 3DS sees the downloaded file as new if this number is different from the previous download (Doesn&#039;t matter if the number is bigger or smaller).&lt;br /&gt;
&lt;br /&gt;
The boss system module v13314 begins at address 0x0010eb98 with the function for parsing the BOSS header.&lt;br /&gt;
&lt;br /&gt;
=== Content Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x10&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x2&lt;br /&gt;
| Number of payload contents (Payload Content Header + Payload)&lt;br /&gt;
|-&lt;br /&gt;
| 0x12&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x32&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the above hash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first 0x10-bytes are all-zero except the first byte. If the 7th bit (0x80) is not set, the arrived flag will only be marked if the session for the target program ID was made with a privileged session. Otherwise, the arrived flag will always be marked.&lt;br /&gt;
&lt;br /&gt;
The 16-bit value at 0x10 tells how many payload contents follow after this the content header. For example there can be a downloaded file for a game followed by a message for the news system module.&lt;br /&gt;
&lt;br /&gt;
The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo. Following this header is the actual content payload, which is written to a cleartext file under the [[extdata]] /boss directory.&lt;br /&gt;
&lt;br /&gt;
=== Payload Content Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| ProgramID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content datatype, used for filtering with [[BOSSU:GetNsDataIdList]].&lt;br /&gt;
Usually 0x10001? (observed 0x20001 in eShop strings)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Size of the payload after this header&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| [[BOSS_Services|NsDataId]], used for generating the extdata filepath.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| 0x4&lt;br /&gt;
| Probably some version field for the payload&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| 0x20&lt;br /&gt;
| SHA-256 hash&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x100&lt;br /&gt;
| RSA-2048 signature over the previous SHA-256 hash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This signature is signed by Nintendo with the same key-pair as the content header.&lt;br /&gt;
&lt;br /&gt;
The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header(the actual content data).&lt;br /&gt;
&lt;br /&gt;
The downloaded boss data is written in the following format to extdata. The file name that is generated might be Base85/Ascii85 encoded.&lt;br /&gt;
First an extdata header in the following format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x1&lt;br /&gt;
| Size of header including this field. Always 0x18&lt;br /&gt;
|-&lt;br /&gt;
| 0x1&lt;br /&gt;
| 0xB&lt;br /&gt;
| Usually zero?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Download date in format: Bit 0-5 = day, Bit 6-9 = month, Bit 10-20 = year&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x4&lt;br /&gt;
| Usually zero? Padding?&lt;br /&gt;
|}&lt;br /&gt;
Followed by the Payload Content Header without the hash and signature (first 0x1C bytes) and the actual payload.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://wiiucodes.ddnss.eu/tools/BossDecryptor3DS.zip BossDecryptor3DS] Decrypts an encrypted boss container&lt;br /&gt;
* [http://wiiucodes.ddnss.eu/tools/BossEncryptor3DS.zip BossEncryptor3DS] Builds and encrypts a file into a boss container&lt;br /&gt;
&lt;br /&gt;
[[Category:Nintendo Software]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList2&amp;diff=23675</id>
		<title>BOSSU:GetNsDataIdList2</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList2&amp;diff=23675"/>
		<updated>2025-08-21T14:05:43Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Link to internals section of GetNsDataIdList&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0012|4|2}}&lt;br /&gt;
{{IPC/RequestEntryRange|6|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0012|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|4|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Identical to [[BOSSU:GetNsDataIdList]], except the called function mentioned [[BOSSU:GetNsDataIdList#Internals|here]] is used with the following type parameters: 1, 1, 1. Thus, this parameter filters by entries which don&#039;t have the new flag set and those with a matching program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList3&amp;diff=23674</id>
		<title>BOSSU:GetNsDataIdList3</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList3&amp;diff=23674"/>
		<updated>2025-08-21T14:05:23Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Link to internals section of GetNsDataIdList&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0013|4|2}}&lt;br /&gt;
{{IPC/RequestEntryRange|6|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0013|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|4|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Identical to [[BOSSU:GetNsDataIdList]], except the called function mentioned [[BOSSU:GetNsDataIdList#Internals|here]] is used with the following type parameters: 1, 1, 0. Thus, this command filters by entries which don&#039;t have the new flag set, and doesn&#039;t filter by the program ID.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList3&amp;diff=23673</id>
		<title>BOSSU:GetNsDataIdList3</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList3&amp;diff=23673"/>
		<updated>2025-08-21T14:04:19Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Explain type parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0013|4|2}}&lt;br /&gt;
{{IPC/RequestEntryRange|6|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0013|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|4|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Identical to [[BOSSU:GetNsDataIdList]], except the called function mentioned [[BOSSU:GetNsDataIdList|here]] is used with the following type parameters: 1, 1, 0. Thus, this command filters by entries which don&#039;t have the new flag set, and doesn&#039;t filter by the program ID.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList2&amp;diff=23672</id>
		<title>BOSSU:GetNsDataIdList2</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList2&amp;diff=23672"/>
		<updated>2025-08-21T14:02:52Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Explain type parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0012|4|2}}&lt;br /&gt;
{{IPC/RequestEntryRange|6|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0012|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|4|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Identical to [[BOSSU:GetNsDataIdList]], except the called function mentioned [[BOSSU:GetNsDataIdList|here]] is used with the following type parameters: 1, 1, 1. Thus, this parameter filters by entries which don&#039;t have the new flag set and those with a matching program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList1&amp;diff=23671</id>
		<title>BOSSU:GetNsDataIdList1</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList1&amp;diff=23671"/>
		<updated>2025-08-21T14:01:20Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Explain type parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0011|4|2}}&lt;br /&gt;
{{IPC/RequestEntryRange|6|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0011|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|4|Identical to [[BOSSU:GetNsDataIdList]]}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Identical to [[BOSSU:GetNsDataIdList]], except the called function mentioned [[BOSSU:GetNsDataIdList#Internals|here]] is used with the following type parameters: 0, 1, 0. Thus, this command doesn&#039;t filter by either the new flag or the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList&amp;diff=23670</id>
		<title>BOSSU:GetNsDataIdList</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataIdList&amp;diff=23670"/>
		<updated>2025-08-21T13:57:41Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* Description */ Explain type parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0010|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Filter}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Number of entries that the list can hold (max entries)}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Starting index in the internal NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Starting NS Data ID}}&lt;br /&gt;
{{IPC/MapPointerW|Output NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0010|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Actual number of output entries}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Last index copied to output in the internal NS Data ID list}}&lt;br /&gt;
{{IPC/MapPointerW|Output NS Data ID list}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Writes an array of NS Data ID entries (u32) for the program ID of the current session to the output buffer using the provided filters.&lt;br /&gt;
&lt;br /&gt;
==Internals==&lt;br /&gt;
This eventually calls a function with the following type parameters: 0, 1, 1. This function doesn&#039;t use the second type parameter. Afterwards another function is called using the program ID.&lt;br /&gt;
&lt;br /&gt;
The first type parameter is a filter based on the new flag of the NsData:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Allow everything&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Only allow entries which don&#039;t have the new flag set&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Only allow entries which have the new flag set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The second type parameter represents the session being used for the command:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || User&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Privileged&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The third type parameter is a filter based on the program ID of the session:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Allow everything&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Only allow entries which have a target program ID matching the program ID of the session&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hence, this command only lists entries whose program ID matches the one from this session.&lt;br /&gt;
&lt;br /&gt;
=Filter=&lt;br /&gt;
Content filtering is enabled when this word isn&#039;t 0xFFFFFFFF. This is only used for the following: &amp;lt;code&amp;gt;if (filterword_u16high != contentdatatype_u16high || (filterword_u16low &amp;amp; contentdatatype_u16low) == 0) continue;&amp;lt;/code&amp;gt; Hence, filterword_u16high must match contentdatatype_u16high, and the bitmask specified by filterword_u16low must be non-zero in contentdatatype_u16low. The contentdatatype is extracted from the extdata filename, which originates from the [[SpotPass|BOSS-container]]. The NS Data ID for the content entry is only written to the output when processing isn&#039;t skipped due to filtering.&lt;br /&gt;
&lt;br /&gt;
=Start NsDataId=&lt;br /&gt;
This field is only used when the starting index is non-zero or when this field is non-zero.&lt;br /&gt;
&lt;br /&gt;
The NS Data ID at the specified starting index must match this field, otherwise error 0xD840F846 is returned. It will then skip normal content entry processing for this matching entry (cur_wordindex is field is increased by 0x1 before starting the content entry processing loop).&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23669</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23669"/>
		<updated>2025-08-21T11:55:59Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* NsDataHeaderInfo */ Clarify information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
This type contains information about an NsData, the fields match exactly with the [[SpotPass#Payload_Content_Header|Payload Content Header]] without the hash and signature. When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Type !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x20 || Everything:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x8 || Program ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 || Unknown field&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Content datatype&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x4 || Payload size&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || NS Data ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x4 || Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 || Padding?&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || [[#PriorityLevel|Priority]]. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || [[#ActionCode|ActionCode]]. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 || HeaderField[3] || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || char[32] Header name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x100 || char[256] Header value&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || [[#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || [[#TaskStateCode|TaskStateCode]]. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || TaskServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || [[#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The official name for this type is &amp;quot;PropertyType&amp;quot;. The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStateCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==PriorityLevel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || INVALID? || Probably represents an invalid value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || EXPEDITE1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || EXPEDITE2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || EXPEDITE3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || EXPEDITE4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || EXPEDITE5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || EXPEDITE6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || EXPEDITE7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || EXPEDITE8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || EXPEDITE || &lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || HIGH || &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D || MEDIUM || This is the default value inside the games API&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || LOW || &lt;br /&gt;
|-&lt;br /&gt;
| 0xD7 || LOWEST || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDD || LOWEST1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDE || LOWEST2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDF || LOWEST3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE0 || LOWEST4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE1 || LOWEST5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE2 || LOWEST6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE3 || LOWEST7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE4 || LOWEST8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || STOPPED || The task won&#039;t be run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Represents the priority of a task. Any values outside the ones listed above are considered invalid.&lt;br /&gt;
&lt;br /&gt;
==ActionCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || FileList? Action code used for listing files on the BOSS server. May be a generic raw download?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || NsaDownload? Action code for downloading data from the given URL, principally an NsData&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || Upload? Action code for uploading data to the given URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || Action code used by task ID &amp;quot;pl&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || Action code used by task ID &amp;quot;phu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || Action code used by task ID &amp;quot;tiu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || Action code used by task ID &amp;quot;splu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || Action code used for downloading data from DataStore through an Hpp server. Stores notification data?&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || Action code related to DataStore?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || Action code used for StreetPass Relay&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || Action code used for downloading the title version list (versionList.dat)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This represents the action that a task will perform.&lt;br /&gt;
&lt;br /&gt;
==ApInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;apgroup&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;aparea&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;ap&amp;quot; parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the access point the console is connected to.&lt;br /&gt;
&lt;br /&gt;
==CfgInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;c&amp;quot; (two-letter country code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;l&amp;quot; (two-letter language code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;tm&amp;quot; ([[Cfg:GetSystemModel|target model]]) parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the console configuration.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23668</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23668"/>
		<updated>2025-08-21T11:34:52Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* CfgInfoType */ Format update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
===Type0===&lt;br /&gt;
Total size is 0x8-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type1===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type2===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content data-type, originally from the [[SpotPass|BOSS-container]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type3===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type4===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type5===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type6===&lt;br /&gt;
Total size is 0x20-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID. Same data as Type0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type1.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type3.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0xC&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || [[#PriorityLevel|Priority]]. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || [[#ActionCode|ActionCode]]. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 || HeaderField[3] || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || char[32] Header name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x100 || char[256] Header value&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || [[#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || [[#TaskStateCode|TaskStateCode]]. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || TaskServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || [[#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The official name for this type is &amp;quot;PropertyType&amp;quot;. The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStateCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==PriorityLevel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || INVALID? || Probably represents an invalid value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || EXPEDITE1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || EXPEDITE2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || EXPEDITE3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || EXPEDITE4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || EXPEDITE5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || EXPEDITE6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || EXPEDITE7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || EXPEDITE8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || EXPEDITE || &lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || HIGH || &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D || MEDIUM || This is the default value inside the games API&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || LOW || &lt;br /&gt;
|-&lt;br /&gt;
| 0xD7 || LOWEST || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDD || LOWEST1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDE || LOWEST2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDF || LOWEST3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE0 || LOWEST4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE1 || LOWEST5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE2 || LOWEST6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE3 || LOWEST7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE4 || LOWEST8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || STOPPED || The task won&#039;t be run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Represents the priority of a task. Any values outside the ones listed above are considered invalid.&lt;br /&gt;
&lt;br /&gt;
==ActionCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || FileList? Action code used for listing files on the BOSS server. May be a generic raw download?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || NsaDownload? Action code for downloading data from the given URL, principally an NsData&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || Upload? Action code for uploading data to the given URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || Action code used by task ID &amp;quot;pl&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || Action code used by task ID &amp;quot;phu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || Action code used by task ID &amp;quot;tiu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || Action code used by task ID &amp;quot;splu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || Action code used for downloading data from DataStore through an Hpp server. Stores notification data?&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || Action code related to DataStore?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || Action code used for StreetPass Relay&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || Action code used for downloading the title version list (versionList.dat)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This represents the action that a task will perform.&lt;br /&gt;
&lt;br /&gt;
==ApInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;apgroup&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;aparea&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;ap&amp;quot; parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the access point the console is connected to.&lt;br /&gt;
&lt;br /&gt;
==CfgInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;c&amp;quot; (two-letter country code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;l&amp;quot; (two-letter language code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;tm&amp;quot; ([[Cfg:GetSystemModel|target model]]) parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the console configuration.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23667</id>
		<title>BOSSU:GetTaskState</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23667"/>
		<updated>2025-08-21T11:33:52Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Update link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|bool, Unknown}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, [[BOSS_Services#TaskStateCode|TaskStateCode]]}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Count}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the state of the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23666</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23666"/>
		<updated>2025-08-21T11:07:40Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Add details about some properties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
===Type0===&lt;br /&gt;
Total size is 0x8-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type1===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type2===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content data-type, originally from the [[SpotPass|BOSS-container]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type3===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type4===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type5===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type6===&lt;br /&gt;
Total size is 0x20-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID. Same data as Type0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type1.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type3.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0xC&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || [[#PriorityLevel|Priority]]. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || [[#ActionCode|ActionCode]]. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 || HeaderField[3] || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server. Structure:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x20 || char[32] Header name&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x100 || char[256] Header value&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || [[#ApInfoType|ApInfoType]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || [[#TaskStateCode|TaskStateCode]]. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || TaskServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || [[#CfgInfoType|CfgInfoType]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The official name for this type is &amp;quot;PropertyType&amp;quot;. The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStateCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==PriorityLevel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || INVALID? || Probably represents an invalid value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || EXPEDITE1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || EXPEDITE2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || EXPEDITE3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || EXPEDITE4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || EXPEDITE5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || EXPEDITE6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || EXPEDITE7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || EXPEDITE8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || EXPEDITE || &lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || HIGH || &lt;br /&gt;
|-&lt;br /&gt;
| 0x7D || MEDIUM || This is the default value inside the games API&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || LOW || &lt;br /&gt;
|-&lt;br /&gt;
| 0xD7 || LOWEST || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDD || LOWEST1 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDE || LOWEST2 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xDF || LOWEST3 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE0 || LOWEST4 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE1 || LOWEST5 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE2 || LOWEST6 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE3 || LOWEST7 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xE4 || LOWEST8 || &lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || STOPPED || The task won&#039;t be run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Represents the priority of a task. Any values outside the ones listed above are considered invalid.&lt;br /&gt;
&lt;br /&gt;
==ActionCode==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || FileList? Action code used for listing files on the BOSS server. May be a generic raw download?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || NsaDownload? Action code for downloading data from the given URL, principally an NsData&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || Upload? Action code for uploading data to the given URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || Action code used by task ID &amp;quot;pl&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || Action code used by task ID &amp;quot;phu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || Action code used by task ID &amp;quot;tiu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || Action code used by task ID &amp;quot;splu&amp;quot; from the Home Menu&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || Action code used for downloading data from DataStore through an Hpp server. Stores notification data?&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || Action code related to DataStore?&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || Action code used for StreetPass Relay&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || Action code used for downloading the title version list (versionList.dat)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This represents the action that a task will perform.&lt;br /&gt;
&lt;br /&gt;
==ApInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || Adds the &amp;quot;apgroup&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Adds the &amp;quot;aparea&amp;quot; parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || Adds the &amp;quot;ap&amp;quot; parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the access point the console is connected to.&lt;br /&gt;
&lt;br /&gt;
==CfgInfoType==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Adds the &amp;quot;c&amp;quot; (two-letter country code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Adds the &amp;quot;l&amp;quot; (two-letter language code) parameter to the query&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Adds the &amp;quot;tm&amp;quot; ([[Cfg:GetSystemModel|target model]]) parameter to the query&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a set of flags which add additional paramaters to the URL query with information about the console configuration.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23665</id>
		<title>BOSS Services</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSS_Services&amp;diff=23665"/>
		<updated>2025-08-20T17:39:29Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: /* PropertyIDs */ Expand documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==BOSS User Service &amp;quot;boss:U&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010082&lt;br /&gt;
| [[BOSSU:InitializeSession|InitializeSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020100&lt;br /&gt;
| [[BOSSU:SetStorageInfo|SetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030000&lt;br /&gt;
| [[BOSSU:UnregisterStorage|UnregisterStorage]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| [[BOSSU:GetStorageInfo|GetStorageInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050042&lt;br /&gt;
| [[BOSSU:RegisterPrivateRootCa|RegisterPrivateRootCa]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060084&lt;br /&gt;
| [[BOSSU:RegisterPrivateClientCert|RegisterPrivateClientCert]] &amp;lt;nowiki&amp;gt;(u32 Size0, u32 Size1, ((Size0&amp;lt;&amp;lt;4) | 10), Buf0, ((Size1&amp;lt;&amp;lt;4) | 10), Buf1)&amp;lt;/nowiki&amp;gt; This writes the content of the input buffers into files &amp;quot;bossdb:/%s_CL&amp;quot; and &amp;quot;bossdb:/%s_CLK&amp;quot;, where &amp;quot;%s&amp;quot; is generated from the programID.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| [[BOSSU:GetNewArrivalFlag|GetNewArrivalFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00080002&lt;br /&gt;
| [[BOSSU:RegisterNewArrivalEvent|RegisterNewArrivalEvent]]: Used for sending a handle. This is used with a table of programIDs etc with a maximum of 5 entries.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00090040&lt;br /&gt;
| [[BOSSU:SetOptoutFlag|SetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A0000&lt;br /&gt;
| [[BOSSU:GetOptoutFlag|GetOptoutFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000B00C2&lt;br /&gt;
| [[BOSSU:RegisterTask|RegisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C0082&lt;br /&gt;
| [[BOSSU:UnregisterTask|UnregisterTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000D0082&lt;br /&gt;
| [[BOSSU:ReconfigureTask|ReconfigureTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000E0000&lt;br /&gt;
| [[BOSSU:GetTaskIdList|GetTaskIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x000F0042&lt;br /&gt;
| [[BOSSU:GetStepIdList|GetStepIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00100102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList|GetNsDataIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00110102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList1|GetNsDataIdList1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00120102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList2|GetNsDataIdList2]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00130102&lt;br /&gt;
| [[BOSSU:GetNsDataIdList3|GetNsDataIdList3]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00140082&lt;br /&gt;
| [[BOSSU:SendProperty|SendProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00150042&lt;br /&gt;
| [[BOSSU:SendPropertyHandle|SendPropertyHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00160082&lt;br /&gt;
| [[BOSSU:ReceiveProperty|ReceiveProperty]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00170082&lt;br /&gt;
| [[BOSSU:UpdateTaskInterval|UpdateTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00180082&lt;br /&gt;
| [[BOSSU:UpdateTaskCount|UpdateTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00190042&lt;br /&gt;
| [[BOSSU:GetTaskInterval|GetTaskInterval]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001A0042&lt;br /&gt;
| [[BOSSU:GetTaskCount|GetTaskCount]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001B0042&lt;br /&gt;
| [[BOSSU:GetTaskServiceStatus|GetTaskServiceStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001C0042&lt;br /&gt;
| [[BOSSU:StartTask|StartTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001D0042&lt;br /&gt;
| [[BOSSU:StartTaskImmediate|StartTaskImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001E0042&lt;br /&gt;
| [[BOSSU:CancelTask|CancelTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x001F0000&lt;br /&gt;
| [[BOSSU:GetTaskFinishHandle|GetTaskFinishHandle]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200082&lt;br /&gt;
| [[BOSSU:GetTaskState|GetTaskState]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00210042&lt;br /&gt;
| [[BOSSU:GetTaskResult|GetTaskResult]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00220042&lt;br /&gt;
| [[BOSSU:GetTaskCommErrorCode|GetTaskCommErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002300C2&lt;br /&gt;
| [[BOSSU:GetTaskStatus|GetTaskStatus]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00240082&lt;br /&gt;
| [[BOSSU:GetTaskError|GetTaskError]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00250082&lt;br /&gt;
| [[BOSSU:GetTaskInfo|GetTaskInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00260040&lt;br /&gt;
| [[BOSSU:DeleteNsData|DeleteNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002700C2&lt;br /&gt;
| [[BOSSU:GetNsDataHeaderInfo|GetNsDataHeaderInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00280102&lt;br /&gt;
| [[BOSSU:ReadNsData|ReadNsData]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00290080&lt;br /&gt;
| [[BOSSU:SetNsDataAdditionalInfo|SetNsDataAdditionalInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A0040&lt;br /&gt;
| [[BOSSU:GetNsDataAdditionalInfo|GetNsDataAdditionalInfo]]. Writes an output u32 to cmdreply[2].&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B0080&lt;br /&gt;
| [[BOSSU:SetNsDataNewFlag|SetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002C0040&lt;br /&gt;
| [[BOSSU:GetNsDataNewFlag|GetNsDataNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002D0040&lt;br /&gt;
| [[BOSSU:GetNsDataLastUpdate|GetNsDataLastUpdate]] (u32 NsDataId) Writes an output u64 to cmdreply[2-3], from the content file in extdata.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002E0040&lt;br /&gt;
| [[BOSSU:GetErrorCode|GetErrorCode]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x002F0140&lt;br /&gt;
| [[BOSSU:RegisterStorageEntry|RegisterStorageEntry]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00300000&lt;br /&gt;
| [[BOSSU:GetStorageEntryInfo|GetStorageEntryInfo]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00310100&lt;br /&gt;
| [[BOSSU:SetStorageOption|SetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00320000&lt;br /&gt;
| [[BOSSU:GetStorageOption|GetStorageOption]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00330042&lt;br /&gt;
| [[BOSSU:StartBgImmediate|StartBgImmediate]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00340042&lt;br /&gt;
| [[BOSSU:GetTaskPriority|GetTaskPriority]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x003500C2&lt;br /&gt;
| [[BOSSU:RegisterImmediateTask|RegisterImmediateTask]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x00360084&lt;br /&gt;
| [[BOSSU:SetTaskQuery|SetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00370084&lt;br /&gt;
| [[BOSSU:GetTaskQuery|GetTaskQuery]] &amp;lt;nowiki&amp;gt;(u32 TaskID_Size, u32 BufSize, ((TaskID_Size&amp;lt;&amp;lt;4) | 10), TaskID_buf, ((BufSize&amp;lt;&amp;lt;4) | 10), Buf)&amp;lt;/nowiki&amp;gt; BufSize must match 0x60.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BOSS Privileged Service &amp;quot;boss:P&amp;quot;==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x04010082&lt;br /&gt;
| [[BOSSP:InitializeSessionPrivileged|InitializeSessionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04030000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04040080&lt;br /&gt;
| [[BOSSP:GetAppNewFlag|GetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040500C0&lt;br /&gt;
| [[BOSSP:SetAppNewFlag|SetAppNewFlag]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040600C0&lt;br /&gt;
| [[BOSSP:SetOptoutFlagPrivileged|SetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04070080&lt;br /&gt;
| [[BOSSP:GetOptoutFlagPrivileged|GetOptoutFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04080040&lt;br /&gt;
| (u8 optout) Sets the optout flag to all apps?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04090102&lt;br /&gt;
| [[BOSSP:UnregisterTaskPrivileged|UnregisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040A0000&lt;br /&gt;
| [[BOSSP:GetAppIdList|GetAppIdList]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040B0080&lt;br /&gt;
| [[BOSSP:GetTaskIdListPrivileged|GetTaskIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040C00C2&lt;br /&gt;
| [[BOSSP:GetStepIdListPrivileged|GetStepIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040D0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged|GetNsDataIdListPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040E0182&lt;br /&gt;
| [[BOSSP:GetNsDataIdListPrivileged1|GetNsDataIdListPrivileged1]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x040F0102&lt;br /&gt;
| [[BOSSP:GetTaskInfoPrivileged|GetTaskInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04100102&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged1|GetTaskStatusPrivileged1]] Same as GetTaskStatusPrivileged, but the input bool is set to false&lt;br /&gt;
|-&lt;br /&gt;
| 0x04110102&lt;br /&gt;
| [[BOSSP:GetTaskErrorPrivileged|GetTaskErrorPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04120000&lt;br /&gt;
| Related to the sysmodule savedata?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04130082&lt;br /&gt;
| [[BOSSP:SendPropertyPrivileged|SendPropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04140082&lt;br /&gt;
| [[BOSSP:ReceivePropertyPrivileged|ReceivePropertyPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041500C0&lt;br /&gt;
| [[BOSSP:DeleteNsDataPrivileged|DeleteNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04160142&lt;br /&gt;
| [[BOSSP:GetNsDataHeaderInfoPrivileged|GetNsDataHeaderInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04170182&lt;br /&gt;
| [[BOSSP:ReadNsDataPrivileged|ReadNsDataPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04180100&lt;br /&gt;
| [[BOSSP:SetNsDataAdditionalInfoPrivileged|SetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041900C0&lt;br /&gt;
| [[BOSSP:GetNsDataAdditionalInfoPrivileged|GetNsDataAdditionalInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041A0100&lt;br /&gt;
| [[BOSSP:SetNsDataNewFlagPrivileged|SetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041B00C0&lt;br /&gt;
| [[BOSSP:GetNsDataNewFlagPrivileged|GetNsDataNewFlagPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041C00C0&lt;br /&gt;
| [[BOSSP:GetNsDataLastUpdatePrivileged|GetNsDataLastUpdatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x041D0040&lt;br /&gt;
| (bool unk_flag1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x041E0000&lt;br /&gt;
| Returns: bool unk_flag1&lt;br /&gt;
|-&lt;br /&gt;
| 0x041F0040&lt;br /&gt;
| [[BOSSP:SetTestModeAvailability|SetTestModeAvailability]] (bool test_mode_flag)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04200000&lt;br /&gt;
| [[BOSSP:GetTestModeAvailability|GetTestModeAvailability]]. Returns: bool test_mode_flag&lt;br /&gt;
|-&lt;br /&gt;
| 0x04210000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04220000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04230000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04240000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04250042&lt;br /&gt;
| [[BOSSP:SetPolicyListEnvId|SetPolicyListEnvId]]. Sets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strncpy(&amp;quot;p01&amp;quot;, in, 8)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04260042&lt;br /&gt;
| [[BOSSP:GetPolicyListEnvId|GetPolicyListEnvId]]. Gets the policylist env ID (default env ID is &amp;quot;p01&amp;quot;): strcpy(out, &amp;quot;p01&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04270042&lt;br /&gt;
| [[BOSSP:SetPolicyListUrl|SetPolicyListUrl]]. Sets a custom policylist URL. Max of 0x200 chars&lt;br /&gt;
|-&lt;br /&gt;
| 0x04280042&lt;br /&gt;
| [[BOSSP:GetPolicyListUrl|GetPolicyListUrl]]. Gets the custom policylist URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04290002&lt;br /&gt;
| (Handle unk)&lt;br /&gt;
|-&lt;br /&gt;
| 0x042A0000&lt;br /&gt;
| Closes the previous handle&lt;br /&gt;
|-&lt;br /&gt;
| 0x042B0000&lt;br /&gt;
| Returns: u8 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042C0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x042D0000&lt;br /&gt;
| Returns: u32 unk&lt;br /&gt;
|-&lt;br /&gt;
| 0x042E00C2&lt;br /&gt;
| [[BOSSP:StartTaskPrivileged|StartTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x042F00C2&lt;br /&gt;
| [[BOSSP:StartTaskImmediatePrivileged|StartTaskImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043000C2&lt;br /&gt;
| [[BOSSP:CancelTaskPrivileged|CancelTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04310040&lt;br /&gt;
| (u32 unk_4) The input is stored in a variable whose default value is 0x70&lt;br /&gt;
|-&lt;br /&gt;
| 0x04320040&lt;br /&gt;
| Returns: u32 unk_4&lt;br /&gt;
|-&lt;br /&gt;
| 0x04330080&lt;br /&gt;
| [[BOSSP:GetStorageOptionPrivileged|GetStorageOptionPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043400C2&lt;br /&gt;
| [[BOSSP:StartBgImmediatePrivileged|StartBgImmediatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04350042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04360042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043700C2&lt;br /&gt;
| [[BOSSP:GetTaskPriorityPrivileged|GetTaskPriorityPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04380000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04390104&lt;br /&gt;
| [[BOSSP:GetTaskQueryPrivileged|GetTaskQueryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x043A0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043B0042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x043C0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043D0080&lt;br /&gt;
| (u64 title_id)&lt;br /&gt;
|-&lt;br /&gt;
| 0x043E0042&lt;br /&gt;
| [[BOSSP:SetSprelayUrl|SetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xA), Buf)&amp;lt;/nowiki&amp;gt;. Sets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x043F0042&lt;br /&gt;
| [[BOSSP:GetSprelayUrl|GetSprelayUrl]] &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Gets the sprelay URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04400080&lt;br /&gt;
| [[BOSSP:SetSprelayInterval|SetSprelayInterval]] (u32 interval, u32 unk). Sets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04410000&lt;br /&gt;
| [[BOSSP:GetSprelayInterval|GetSprelayInterval]] Returns: u32 interval, u32 unk. Gets the sprelay interval, and other things&lt;br /&gt;
|-&lt;br /&gt;
| 0x04420000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04430042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x208&lt;br /&gt;
|-&lt;br /&gt;
| 0x04440042&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;(u32 Size, ((Size&amp;lt;&amp;lt;4)|0xC), Buf)&amp;lt;/nowiki&amp;gt;. Size must be at least 0x130&lt;br /&gt;
|-&lt;br /&gt;
| 0x04450040&lt;br /&gt;
| (u8 unk_5)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04460000&lt;br /&gt;
| Returns: u8 unk_5&lt;br /&gt;
|-&lt;br /&gt;
| 0x04470002&lt;br /&gt;
| [[BOSSP:RegisterNewArrivalEventPrivileged|RegisterNewArrivalEventPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04480000?&lt;br /&gt;
| Stubbed&lt;br /&gt;
|-&lt;br /&gt;
| 0x04490142&lt;br /&gt;
| [[BOSSP:RegisterTaskPrivileged|RegisterTaskPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044A0180&lt;br /&gt;
| [[BOSSP:SetStorageInfoPrivileged|SetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044B01C0&lt;br /&gt;
| [[BOSSP:RegisterStorageEntryPrivileged|RegisterStorageEntryPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044C0080&lt;br /&gt;
| [[BOSSP:UnregisterStoragePrivileged|UnregisterStoragePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044D0080&lt;br /&gt;
| [[BOSSP:GetStorageInfoPrivileged|GetStorageInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044E0080&lt;br /&gt;
| [[BOSSP:GetStorageEntryInfoPrivileged|GetStorageEntryInfoPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x044F0102&lt;br /&gt;
| [[BOSSP:UpdateTaskIntervalPrivileged|UpdateTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04500102&lt;br /&gt;
| [[BOSSP:UpdateTaskCountPrivileged|UpdateTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045100C2&lt;br /&gt;
| [[BOSSP:GetTaskIntervalPrivileged|GetTaskIntervalPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045200C2&lt;br /&gt;
| [[BOSSP:GetTaskCountPrivileged|GetTaskCountPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045300C2&lt;br /&gt;
| [[BOSSP:GetTaskServiceStatusPrivileged|GetTaskServiceStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04540102&lt;br /&gt;
| [[BOSSP:GetTaskStatePrivileged|GetTaskStatePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045500C2&lt;br /&gt;
| [[BOSSP:GetTaskResultPrivileged|GetTaskResultPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x045600C2&lt;br /&gt;
| [[BOSSP:GetTaskCommErrorCodePrivileged|GetTaskCommErrorCodePrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04570142&lt;br /&gt;
| [[BOSSP:GetTaskStatusPrivileged|GetTaskStatusPrivileged]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04580104&lt;br /&gt;
| [[BOSSP:SetTaskQueryPrivileged|SetTaskQueryPrivileged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
boss:P also contains all of the commands from boss:U.&lt;br /&gt;
&lt;br /&gt;
When Home Menu loads the SpotPass [[CBMD]] with [[Extended_Banner]], it uses bossP command 0x040D0182 first. Then it uses GetNsDataHeaderInfoPrivileged, then ReadNsDataPrivileged for loading the actual banner data.&lt;br /&gt;
&lt;br /&gt;
==BOSS Service &amp;quot;boss:M&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Command Header&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00010002&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00020000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00030040&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00040000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00050000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00060000&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x00070000&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==programIDs==&lt;br /&gt;
BOSS uses programIDs raw without any handling for the New3DS programID-low bitmask. For example, attempting a NsDataId listing with the New3DS bitmask set will fail, if BOSS is only setup for that programID with the New3DS bitmask clear.&lt;br /&gt;
&lt;br /&gt;
When [[BOSSU:InitializeSession|initializing]] BOSS with the default programID, the New3DS programID-low bitmask is always clear for New3DS titles since that&#039;s how it was originally registered with [[Filesystem_services|FS]]. Hence, the programID in the [[SpotPass|BOSS-container]] must always have the New3DS bitmask clear. This also means everything using the BOSSP commands with the raw programIDs loaded from AM title-listing are broken with New3DS titles, for example [[Extended_Banner]].&lt;br /&gt;
&lt;br /&gt;
==Content Data Storage==&lt;br /&gt;
SpotPass content for each application is stored under the extdata specified by [[BOSS:SetStorageInfo]]. Certain commands verify that the PID associated with the current service session has access to the specified extdata by using [[FS:CheckAuthorityToAccessExtSaveData]], returning an error on failure. This basically renders SpotPass unusable under user-processes(when initialized under those processes) which don&#039;t have access to any SD extdata(unless NAND extdata is used instead).&lt;br /&gt;
&lt;br /&gt;
All of these commands using [[FS:CheckAuthorityToAccessExtSaveData]] are: [[BOSS:SetStorageInfo]] and RegisterStorageEntry, for both BOSSU and BOSSP.&lt;br /&gt;
&lt;br /&gt;
BOSS-container content is stored in the extdata registered for the programID specified in the BOSS-container, what task it&#039;s associated with / what title registered it is irrelevant with BOSS-container data storage.&lt;br /&gt;
&lt;br /&gt;
==Custom SpotPass content==&lt;br /&gt;
SpotPass supports raw content download without using the encrypted+signed SpotPass container(raw content is used by [[Home Menu]] SpotPass VersionList for example). However, this is incompatible with the data-loading method used with SpotPass-container content(NsData commands can&#039;t be used with it).&lt;br /&gt;
&lt;br /&gt;
When writing the raw content, it firsts deletes and creates the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file under the data-storage extdata with normal extdata(not the separate boss archive). Once successful, the final filename specified by the task config will be deleted if needed, then the &amp;quot;&amp;lt;taskID&amp;gt;&amp;quot; file will be renamed to the final filename. Afterwards, the user-process can access the final file just like any other extdata file.&lt;br /&gt;
&lt;br /&gt;
For using custom content with the SpotPass container(like official titles), the only known ways to do so is: &amp;quot;CFW&amp;quot; / ARM11-kernelhax with the sigchecks for this patched, or some sort of BOSS-sysmodule exploit if there&#039;s any vulns to begin with.&lt;br /&gt;
&lt;br /&gt;
==HTTP upload==&lt;br /&gt;
SpotPass tasks can be used for uploading data via HTTP POST. The exact method varies, but the main one is a [[HTTPC:SendPOSTDataRawTimeout|raw]] POST.&lt;br /&gt;
&lt;br /&gt;
The content data is loaded from the following path: snprintf(outpath, outpathsize, &amp;quot;%s/%s%02x.up&amp;quot;, archivepath, taskidstr_probably, unk);&lt;br /&gt;
&lt;br /&gt;
The archivepath can be either &amp;quot;bossdb:&amp;quot;(BOSS-sysmodule NAND savedata) or the content-data-storage extdata. Certain other paths in the BOSS savedata can be used too.&lt;br /&gt;
&lt;br /&gt;
==BOSS Tasks==&lt;br /&gt;
The TaskID is a 8-byte buffer containing a string including NUL-terminator(taskIDs are compared with: strncmp(str0, str1, 7)).&lt;br /&gt;
&lt;br /&gt;
When disabling SpotPass, applications use [[BOSSU:CancelTask]] then [[BOSSU:UnregisterTask]], to delete each task.&lt;br /&gt;
&lt;br /&gt;
Each process can only access tasks which it created, not other processes&#039; tasks(even when using bossP with [[BOSSP:InitializeSessionPrivileged|init_programID]]=0).&lt;br /&gt;
&lt;br /&gt;
After registration, tasks will not automatically run until they are started using one of the start-task commands.&lt;br /&gt;
&lt;br /&gt;
==NsDataId==&lt;br /&gt;
This is an u32 ID for SpotPass content, used with the NsData service commands etc.&lt;br /&gt;
&lt;br /&gt;
==NsDataHeaderInfo==&lt;br /&gt;
When the input type is not one of the below or when the specified output size doesn&#039;t match the expected size for this type, an error is returned.&lt;br /&gt;
&lt;br /&gt;
===Type0===&lt;br /&gt;
Total size is 0x8-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type1===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type2===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content data-type, originally from the [[SpotPass|BOSS-container]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type3===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| Content size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type4===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type5===&lt;br /&gt;
Total size is 0x4-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type6===&lt;br /&gt;
Total size is 0x20-bytes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Offset&lt;br /&gt;
!  Size&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x8&lt;br /&gt;
| programID. Same data as Type0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type1.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Same data as Type3.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0xC&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PropertyIDs==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Size !! Type !! Read !! Write !! Rewritable !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x1 || u8 || Yes || Yes || Yes || Priority. Represents the priority of a task&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || u8 || Yes || Yes || Yes || SchedulingPolicy. Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x4 || u32 || Yes || Yes || Yes || TaskTargetDuration. Unknown purpose, the API on games require a value below 0x10000 (not inclusive)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3 || 0x4 || u32 || Yes || Yes || Yes || Interval in seconds of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || 0x4 || u32 || Yes || Yes || Yes || Count. Number of times that the task will be run. If zero, the task is persistent&lt;br /&gt;
|-&lt;br /&gt;
| 0x5 || 0x1 || u8 || Yes || Yes || Yes || TaskPermission. Unknown purpose, the API on games require a value between 0 and 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x6 || 0x1 || u8 || Yes || Yes || No || ActionCode. Represents the action that a task will perform&lt;br /&gt;
|-&lt;br /&gt;
| 0x7 || 0x200 || char[512] || Yes || Yes || No || URL. Unused for DataStore actions&lt;br /&gt;
|-&lt;br /&gt;
| 0x8 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x9 || 0x1 ||  || Yes || Yes || No || Controls the action data type? The API on games require a value between 0 and 6&lt;br /&gt;
|-&lt;br /&gt;
| 0xA || 0x100 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xB and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xB || 0x200 ||  || Yes || Yes || No || Unknown action data. Shares buffer with properties 0xA and 0x3E&lt;br /&gt;
|-&lt;br /&gt;
| 0xC || 0x4 || Handle || Yes || Yes || No || Optional file handle with the data to send&lt;br /&gt;
|-&lt;br /&gt;
| 0xD || 0x360 ||  || Yes || Yes || No || HeaderFields. Additional headers to include in the request sent to the server&lt;br /&gt;
|-&lt;br /&gt;
| 0xE || 0x4 || u32[1] || Yes || Yes || No || ClientCerts. List of [[HTTPC:SetClientCertDefault|cert IDs]] to use as client certs&lt;br /&gt;
|-&lt;br /&gt;
| 0xF || 0xC || u32[3] || Yes || Yes || No || RootCAs. List of [[HTTPC:AddDefaultCert|cert IDs]] to use as root CAs&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x1 || u8 || Yes || Yes || No || FSClientCert. If non-zero, enables the task client certificate to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0x1 || u8 || Yes || Yes || No || FSRootCA. If non-zero, enables the task root CA to be read from the filesystem. May be a bool?&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0x1 || u8 || Yes || Yes || No || ApInfoType&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0x4 || u32 || Yes || Yes || No || RootCaCount. Amount of root CAs stored in property 0xF&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x4 || u32 || Yes || Yes || No || ClientCertCount. Amount of client certificates stored in property 0xE&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0x40 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0x1 ||  || Yes || Yes || No || Unknown purpose, the API on games force this to 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0x1 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0x1 || u8 || Yes || No || No || StateCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x1 || u8 || Yes || No || No || TaskResultCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0x1 || u8 || Yes || No || No || ServiceStatus. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0x4 || u32 || Yes || No || No || CommErrorCode. Unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0x8 || u64 || Yes || No || No || LastSuccessfulTimestamp. Number of seconds since the year 2000 of the last successful run of the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0x8 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || 0x2 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || 0x40 || char[64] || Yes || No || No || LastModifiedHeader. Date string from the Last-Modified HTTP header received when executing the task&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x1 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0x4 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0x100 ||  || Yes || No || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0x2 || u16 || Yes || No || No || TotalApps. Number of application IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x400 || u64[128] || Yes || No || No || AppIdList. List of application IDs registered in BOSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0x2 || u16 || Yes || No || No || TotalTasks. Number of task IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0x400 || char[8][128] || Yes || No || No || TaskIdList. List of task IDs registered by the application&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0x2 || u16 || Yes || No || No || TotalSteps. Number of step IDs on the below list&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x80 || u8[128] || Yes || No || No || StepIdList. List of steps that the task has registered&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0x4 ||  || Yes || Yes || No || ?&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D ||  ||  || No || No || No || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || 0x200 ||  || Yes || Yes || No || DataStoreDownloadActionData. Shares buffer with properties 0xA and 0xB&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || 0x1 || u8 || Yes || Yes || No || CfgInfoType&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The read column represents properties which can be obtained with [[BOSSU:ReceiveProperty|ReceiveProperty]], the write column represents properties which can be set with [[BOSSU:SendProperty|SendProperty]], and the rewritable column indicates properties which can be reassigned into an existing task with [[BOSSU:ReconfigureTask|ReconfigureTask]]. If the specified size for the command is larger than the property size, it will use the actual property size instead. When the specified size is less than the actual property size, all of the property data that won&#039;t be written to is cleared.&lt;br /&gt;
&lt;br /&gt;
Trying to send a property which doesn&#039;t support being sent will give an error 0xC960F84D. Using reserved properties as an argument will give the same error.&lt;br /&gt;
&lt;br /&gt;
==TaskStatus==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Value&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| Last task run was successful?&lt;br /&gt;
|-&lt;br /&gt;
| 0x2&lt;br /&gt;
| Task started.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5&lt;br /&gt;
| Task not started(also the initial state immediately after task creation).&lt;br /&gt;
|-&lt;br /&gt;
| 0x6&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x7&lt;br /&gt;
| Task processing failed(such as network error).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This u8 is returned by [[BOSSU:GetTaskState]].&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Error-code&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F833&lt;br /&gt;
| taskID not found.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F836&lt;br /&gt;
| taskID already exists, for task creation.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F842&lt;br /&gt;
| The specified programID is not setup for BOSS.&lt;br /&gt;
|-&lt;br /&gt;
| 0xC8A0F843&lt;br /&gt;
| The specified NsDataId was not found.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskQuery&amp;diff=23308</id>
		<title>BOSSU:GetTaskQuery</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskQuery&amp;diff=23308"/>
		<updated>2025-02-07T23:22:41Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0037|2|4}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|u32, Task query size}} {{IPC/Ma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0037|2|4}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task query size}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerW|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0037|1|4}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerW|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the task query to the task for the program ID of the current session. The task query is a 0x60-byte structure, so the size is always 0x60.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:SetTaskQuery&amp;diff=23307</id>
		<title>BOSSU:SetTaskQuery</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:SetTaskQuery&amp;diff=23307"/>
		<updated>2025-02-07T23:22:02Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0036|2|4}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|u32, Task query size}} {{IPC/Ma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0036|2|4}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task query size}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0036|1|4}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/MapPointerR|Task query}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Sets a task query to the task for the program ID of the current session. The task query is a 0x60-byte structure, so the size is always 0x60.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterImmediateTask&amp;diff=23306</id>
		<title>BOSSU:RegisterImmediateTask</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterImmediateTask&amp;diff=23306"/>
		<updated>2025-02-07T23:16:24Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0035|3|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|bool, TaskOption configured}} {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0035|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|bool, TaskOption configured}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0035|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Registers a task for the program ID of the current session and updates the BOSS savedata immediately, using information previously configured with [[BOSSU:SendProperty]].&lt;br /&gt;
&lt;br /&gt;
Immediate tasks are those that are configured to run immediately and only once (the count and interval are set to 1). &lt;br /&gt;
&lt;br /&gt;
The input bool is set to true in the SDK if the application provides a TaskOption, which contains some of the properties that can be configured.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskPriority&amp;diff=23305</id>
		<title>BOSSU:GetTaskPriority</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskPriority&amp;diff=23305"/>
		<updated>2025-02-07T23:12:40Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0034|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terinator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0034|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Task priority}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
This loads the current state of PropertyID 0x0 (task priority) for the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:StartBgImmediate&amp;diff=23304</id>
		<title>BOSSU:StartBgImmediate</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:StartBgImmediate&amp;diff=23304"/>
		<updated>2025-02-07T23:09:52Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0033|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0033|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Seems similar to [[BOSSU:StartTaskImmediate]]?&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetStorageOption&amp;diff=23303</id>
		<title>BOSSU:GetStorageOption</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetStorageOption&amp;diff=23303"/>
		<updated>2025-02-07T22:59:32Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0032|0|0}} {{IPC/RequestEnd}}  =Response= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0032|5|0}} {{IPC/Re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0032|0|0}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0032|5|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Unknown}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets options for the storage of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:SetStorageOption&amp;diff=23302</id>
		<title>BOSSU:SetStorageOption</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:SetStorageOption&amp;diff=23302"/>
		<updated>2025-02-07T22:57:45Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0031|4|0}} {{IPC/RequestEntry|u8, Unknown}} {{IPC/RequestEntry|u32, Unknown}} {{IPC/RequestEntry|u16, Unknown}} {{IPC/RequestEn...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0031|4|0}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Unknown}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0031|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Sets options for the storage of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetStorageEntryInfo&amp;diff=23301</id>
		<title>BOSSU:GetStorageEntryInfo</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetStorageEntryInfo&amp;diff=23301"/>
		<updated>2025-02-07T22:48:37Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0030|0|0}} {{IPC/RequestEnd}}  =Response= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/Request...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0030|0|0}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0030|3|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Storage size}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Entry ID?}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets information about the current storage entry being used for the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterStorageEntry&amp;diff=23300</id>
		<title>BOSSU:RegisterStorageEntry</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:RegisterStorageEntry&amp;diff=23300"/>
		<updated>2025-02-07T22:45:59Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{IPC/RequestHeader|0x002F|5|0}} {{IPC/RequestEntryRange|2|u64 Extdata ID}} {{IPC/RequestEntry|u32, Storage size}} {{IPC/RequestEntry|u16, Entry ID?}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x002F|5|0}}&lt;br /&gt;
{{IPC/RequestEntryRange|2|u64 Extdata ID}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Storage size}}&lt;br /&gt;
{{IPC/RequestEntry|u16, Entry ID?}}&lt;br /&gt;
{{IPC/RequestEntry|u8, [[Filesystem_services#MediaType|MediaType]] (only NAND or SD)}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002F|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Registers a storage entry for the program ID of the current session, reserving storage for up to the given size. This is immediately written into the BOSS NAND savedata.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetErrorCode&amp;diff=23299</id>
		<title>BOSSU:GetErrorCode</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetErrorCode&amp;diff=23299"/>
		<updated>2025-02-07T22:41:53Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002E|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|u8, TaskResultCode}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002E|2|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Error code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Converts the given task result code into an error code (004-XXXX). The returned value is an integer 004XXXX.&lt;br /&gt;
&lt;br /&gt;
The error code is looked up in a table. When the input value is 0x71, the output is 46001+5 (004-6006). Otherwise when no match is found in the table and it&#039;s not 0x71, the error code is 004-6001.&lt;br /&gt;
&lt;br /&gt;
This always returns result code 0.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataLastUpdate&amp;diff=23298</id>
		<title>BOSSU:GetNsDataLastUpdate</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataLastUpdate&amp;diff=23298"/>
		<updated>2025-02-07T22:35:07Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x002D|1|0}} {{IPC/RequestEntry|u32, NS Data ID}} {{IPC/RequestEnd}}  =Response= {{IPC/Request}} {{#v...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002D|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002D|3|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntryRange|2|u64, Last update}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Reads the last update field from the header of the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataNewFlag&amp;diff=23297</id>
		<title>BOSSU:GetNsDataNewFlag</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataNewFlag&amp;diff=23297"/>
		<updated>2025-02-07T22:07:03Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x002C|1|0}} {{IPC/RequestEntry|u32, NS Data ID}} {{IPC/RequestEnd}}  =Response= {{IPC/Request}} {{#v...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002C|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002C|2|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|bool, New flag}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the new flag from the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:SetNsDataNewFlag&amp;diff=23296</id>
		<title>BOSSU:SetNsDataNewFlag</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:SetNsDataNewFlag&amp;diff=23296"/>
		<updated>2025-02-07T22:05:11Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x002B|2|0}} {{IPC/RequestEntry|u32, NS Data ID}} {{IPC/RequestEntry|bool, New flag}} {{IPC/RequestEn...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002B|2|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEntry|bool, New flag}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002B|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Sets the new flag on the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataAdditionalInfo&amp;diff=23295</id>
		<title>BOSSU:GetNsDataAdditionalInfo</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataAdditionalInfo&amp;diff=23295"/>
		<updated>2025-02-07T22:03:26Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x002A|1|0}} {{IPC/RequestEntry|u32, NS Data ID}} {{IPC/RequestEnd}}  =Response= {{IPC/Request}} {{#v...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002A|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x002A|2|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Additional info}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets additional info from the header of the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:SetNsDataAdditionalInfo&amp;diff=23294</id>
		<title>BOSSU:SetNsDataAdditionalInfo</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:SetNsDataAdditionalInfo&amp;diff=23294"/>
		<updated>2025-02-07T22:01:54Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0029|2|0}} {{IPC/RequestEntry|u32, NS Data ID}} {{IPC/RequestEntry|u32, Additional info}} {{IPC/Req...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0029|2|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Additional info}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0029|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Writes additional info into the header of the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:ReadNsData&amp;diff=23293</id>
		<title>BOSSU:ReadNsData</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:ReadNsData&amp;diff=23293"/>
		<updated>2025-02-06T23:08:33Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0028|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEntryRange|2|s64, Offset}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Buffer size}}&lt;br /&gt;
{{IPC/MapPointerW|Data buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0028|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Actual read size}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Version of the NS Data}}&lt;br /&gt;
{{IPC/MapPointerW|Data buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Reads the content from the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataHeaderInfo&amp;diff=23292</id>
		<title>BOSSU:GetNsDataHeaderInfo</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetNsDataHeaderInfo&amp;diff=23292"/>
		<updated>2025-02-06T23:01:47Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0027|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEntry|u8, [[BOSS_Services#NsDataHeaderInfo|HeaderInfoType]]}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Buffer size}}&lt;br /&gt;
{{IPC/MapPointerW|Data buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0027|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerW|Data buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets information from the header of the given NS Data ID of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:DeleteNsData&amp;diff=23291</id>
		<title>BOSSU:DeleteNsData</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:DeleteNsData&amp;diff=23291"/>
		<updated>2025-02-06T22:57:17Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0026|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|u32, NS Data ID}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0026|1|0}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Deletes the given NS Data ID from the storage of the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskInfo&amp;diff=23288</id>
		<title>BOSSU:GetTaskInfo</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskInfo&amp;diff=23288"/>
		<updated>2025-02-01T23:24:15Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0025|2|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|u8,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0025|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0025|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Loads all configuration properties of the given task on the program ID of the current session so that they can be accessed with [[BOSSU:ReceiveProperty]]. This can be used for reconfiguring an existing task and keep all unmodified values the same.&lt;br /&gt;
&lt;br /&gt;
The status properties aren&#039;t loaded with this command.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskError&amp;diff=23287</id>
		<title>BOSSU:GetTaskError</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskError&amp;diff=23287"/>
		<updated>2025-02-01T22:52:57Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0024|2|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|u8,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0024|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0024|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Loads the error of the given task on the program ID of the current session into property ID 0x30, which can be accessed with [[BOSSU:ReceiveProperty]].&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskStatus&amp;diff=23286</id>
		<title>BOSSU:GetTaskStatus</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskStatus&amp;diff=23286"/>
		<updated>2025-02-01T22:43:46Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0023|3|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/RequestEntry|boo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0023|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|bool, Unknown}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0023|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the status of the given task on the program ID of the current session. Alongside the current step ID the reponse, more detailed information is loaded into properties which can be accessed with [[BOSSU:ReceiveProperty]].&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskCommErrorCode&amp;diff=23285</id>
		<title>BOSSU:GetTaskCommErrorCode</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskCommErrorCode&amp;diff=23285"/>
		<updated>2025-02-01T22:38:47Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0022|1|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/MapPointerR|Task...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0022|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0022|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u32, TaskCommErrorCode}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Count}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the communications error code of the given task on the program ID of the current session.&lt;br /&gt;
&lt;br /&gt;
The TaskCommErrorCode represents the HTTP status code received when performing a task.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23284</id>
		<title>BOSSU:GetTaskState</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23284"/>
		<updated>2025-02-01T22:02:31Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|bool, Unknown}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, [[BOSS_Services#TaskStatus|TaskStateCode]]}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Count}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the state of the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskResult&amp;diff=23283</id>
		<title>BOSSU:GetTaskResult</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskResult&amp;diff=23283"/>
		<updated>2025-02-01T22:02:12Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Created page with &amp;quot;=Request= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0021|1|2}} {{IPC/RequestEntry|u32, Task ID size, including NULL terminator}} {{IPC/MapPointerR|Task...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0021|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0021|4|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, TaskResult}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Count}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the result of the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23282</id>
		<title>BOSSU:GetTaskState</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskState&amp;diff=23282"/>
		<updated>2025-02-01T21:59:02Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|2|2}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/RequestEntry|bool, Unknown}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x0020|3|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/RequestEntry|u8, [[BOSS_Services#TaskStatus|TaskStateCode]]}}&lt;br /&gt;
{{IPC/RequestEntry|u32, Count}}&lt;br /&gt;
{{IPC/RequestEntry|u8, Current step ID}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Gets the state of the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskFinishHandle&amp;diff=23281</id>
		<title>BOSSU:GetTaskFinishHandle</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:GetTaskFinishHandle&amp;diff=23281"/>
		<updated>2025-02-01T21:43:57Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x001F|0|0}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x001F|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/CopyHandle|1}}&lt;br /&gt;
{{IPC/CopyHandleEntry|KEvent event}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Returns an event handle for the current session which is signaled when the task currently loaded in the session finishes.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:StartTask&amp;diff=23280</id>
		<title>BOSSU:StartTask</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:StartTask&amp;diff=23280"/>
		<updated>2025-02-01T21:35:39Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x001C|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x001C|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Starts the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:StartTaskImmediate&amp;diff=23279</id>
		<title>BOSSU:StartTaskImmediate</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:StartTaskImmediate&amp;diff=23279"/>
		<updated>2025-02-01T21:35:14Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x001D|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x001D|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Starts the given immediate task on the program ID of the current session. Immediate tasks are those that are configured to run immediately and only once (the count and interval are set to 1).&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=BOSSU:CancelTask&amp;diff=23278</id>
		<title>BOSSU:CancelTask</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=BOSSU:CancelTask&amp;diff=23278"/>
		<updated>2025-02-01T21:34:49Z</updated>

		<summary type="html">&lt;p&gt;DaniElectra: Use IPC template header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Request=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{IPC/RequestHeader|0x001E|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Task ID size, including NULL terminator}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Response=&lt;br /&gt;
{{IPC/Request}}&lt;br /&gt;
{{#vardefine:ipc_offset|0}}&lt;br /&gt;
{{IPC/RequestHeader|0x001E|1|2}}&lt;br /&gt;
{{IPC/RequestEntry|Result code}}&lt;br /&gt;
{{IPC/MapPointerR|Task ID buffer}}&lt;br /&gt;
{{IPC/RequestEnd}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Cancels the given task on the program ID of the current session.&lt;/div&gt;</summary>
		<author><name>DaniElectra</name></author>
	</entry>
</feed>