Difference between revisions of "Account services"

From Nintendo Switch Brew
Jump to navigation Jump to search
 
(70 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
= acc:su =
 
= acc:su =
 
This is "nn::account::IAccountServiceForAdministrator".
 
This is "nn::account::IAccountServiceForAdministrator".
 +
 +
This was moved to [[NS_Services|ns]] with [13.0.0+].
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 18: Line 20:
 
| 5 || GetProfile || Returns an [[#IProfile]].
 
| 5 || GetProfile || Returns an [[#IProfile]].
 
|-
 
|-
| 6 || GetProfileDigest ||
+
| 6 || [3.0.0+] GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 
|-
 
|-
| 50 || IsUserRegistrationRequestPermitted ||
+
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 
|-
 
|-
| 51 || TrySelectUserWithoutInteraction ||
+
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
 
|-
 
|-
| 60 || [5.0.0+] ListOpenContextStoredUsers ||
+
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 
|-
 
|-
 
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
 
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
Line 37: Line 43:
 
|-
 
|-
 
| 105 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 
| 105 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 106 || [9.0.0+] GetProfileSyncNotifier ||
 
|-
 
|-
 
| 110 || StoreSaveDataThumbnail ||
 
| 110 || StoreSaveDataThumbnail ||
Line 44: Line 52:
 
| 112 || LoadSaveDataThumbnail ||
 
| 112 || LoadSaveDataThumbnail ||
 
|-
 
|-
| 113 || GetSaveDataThumbnailExistence ||
+
| 113 || [5.0.0+] GetSaveDataThumbnailExistence ||
 +
|-
 +
| 120 || [10.0.0+] ListOpenUsersInApplication ||
 +
|-
 +
| 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
 +
|-
 +
| 140 || [6.0.0+] ListQualifiedUsers ||
 +
|-
 +
| 150 || [10.0.0-10.2.0] AuthenticateApplicationAsync ||
 +
|-
 +
| 151 || [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
 +
|-
 +
| 152 || [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount ||
 
|-
 
|-
| 190 || GetUserLastOpenedApplication ||
+
| 190 || [1.0.0-9.2.0] GetUserLastOpenedApplication ||
 
|-
 
|-
| 191 || [5.0.0+] ActivateOpenContextHolder ||
+
| 191 || [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) ||
 
|-
 
|-
 
| 200 || BeginUserRegistration ||
 
| 200 || BeginUserRegistration ||
Line 60: Line 80:
 
| 204 || SetUserPosition ||
 
| 204 || SetUserPosition ||
 
|-
 
|-
| 205 || GetProfileEditor || Returns an [[#IProfileEditor]].
+
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
 
|-
 
|-
 
| 206 || CompleteUserRegistrationForcibly ||
 
| 206 || CompleteUserRegistrationForcibly ||
 
|-
 
|-
| 210 || CreateFloatingRegistrationRequest || Returns an [[#IFloatingRegistrationRequest]].
+
| 210 || [3.0.0+] CreateFloatingRegistrationRequest || Returns an [[#IFloatingRegistrationRequest]].
 +
|-
 +
| 211 || [8.0.0+] CreateProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x4-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
 +
|-
 +
| 212 || [8.0.0+] ResumeProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x14-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
 +
|-
 +
| 213 || [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount ||
 +
|-
 +
| 214 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount ||
 +
|-
 +
| 215 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse ||
 
|-
 
|-
 
| 230 || AuthenticateServiceAsync || Returns an [[#IAsyncContext]].
 
| 230 || AuthenticateServiceAsync || Returns an [[#IAsyncContext]].
Line 70: Line 100:
 
| 250 || GetBaasAccountAdministrator || Returns an [[#IAdministrator]].
 
| 250 || GetBaasAccountAdministrator || Returns an [[#IAdministrator]].
 
|-
 
|-
| 290 || ProxyProcedureForGuestLoginWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
+
| 290 || ProxyProcedureForGuestLoginWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]] (formerly [[#IOAuthProcedureForGuestLogin]] with [1.0.0-2.3.0]).
 
|-
 
|-
| 291 || ProxyProcedureForFloatingRegistrationWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
+
| 291 || [3.0.0+] ProxyProcedureForFloatingRegistrationWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
 
|-
 
|-
 
| 299 || SuspendBackgroundDaemon || Returns an [[#ISessionObject]].
 
| 299 || SuspendBackgroundDaemon || Returns an [[#ISessionObject]].
 
|-
 
|-
| 997 || DebugInvalidateTokenCacheForUser ||
+
| 400 || [18.0.0+] SetPinCode ||
 +
|-
 +
| 401 || [18.0.0+] GetPinCodeLength ||
 +
|-
 +
| 402 || [18.0.0+] GetPinCode ||
 +
|-
 +
| 410 || [18.0.0+] GetPinCodeErrorCount ||
 +
|-
 +
| 411 || [18.0.0+] ResetPinCodeErrorCount ||
 +
|-
 +
| 412 || [18.0.0+] IncrementPinCodeErrorCount ||
 +
|-
 +
| 420 || [19.0.0+] SetStartPenaltyTime ||
 +
|-
 +
| 421 || [19.0.0+] GetStartPenaltyTime ||
 +
|-
 +
| 900 || [13.0.0+] SetUserUnqualifiedForDebug ||
 +
|-
 +
| 901 || [13.0.0+] UnsetUserUnqualifiedForDebug ||
 +
|-
 +
| 902 || [13.0.0+] ListUsersUnqualifiedForDebug ||
 +
|-
 +
| 910 || [16.0.0+] RefreshFirmwareSettingsForDebug ||
 +
|-
 +
| 997 || [3.0.0+] DebugInvalidateTokenCacheForUser ||
 
|-
 
|-
 
| 998 || DebugSetUserStateClose ||
 
| 998 || DebugSetUserStateClose ||
Line 82: Line 136:
 
| 999 || DebugSetUserStateOpen ||
 
| 999 || DebugSetUserStateOpen ||
 
|}
 
|}
 +
 +
[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.
 +
 +
== IsUserRegistrationRequestPermitted ==
 +
Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.
 +
 +
== TrySelectUserWithoutInteraction ==
 +
Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.
  
 
== IManagerForSystemService ==
 
== IManagerForSystemService ==
Line 99: Line 161:
 
|-
 
|-
 
| 100 || SetSystemProgramIdentification ||
 
| 100 || SetSystemProgramIdentification ||
 +
|-
 +
| 101 || [7.0.0+] RefreshNotificationTokenAsync ||
 
|-
 
|-
 
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
 
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
Line 104: Line 168:
 
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
 
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
 
|-
 
|-
| 112 || [4.0.0+] InvalidateTokenCache ||
+
| 112 || [4.0.0-6.2.0] InvalidateTokenCache ||
 +
|-
 +
| 113 || [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
 
|-
 
|-
 
| 120 || GetNintendoAccountId ||
 
| 120 || GetNintendoAccountId ||
 +
|-
 +
| 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint ||
 
|-
 
|-
 
| 130 || GetNintendoAccountUserResourceCache ||
 
| 130 || GetNintendoAccountUserResourceCache ||
Line 113: Line 181:
 
|-
 
|-
 
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 133 || [9.0.0+] GetNintendoAccountVerificationUrlCache ||
 +
|-
 +
| 134 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync ||
 +
|-
 +
| 135 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
 
|-
 
|-
 
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||  
 
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||  
Line 121: Line 195:
 
|-
 
|-
 
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 +
|-
 +
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
 +
|-
 +
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
 +
|-
 +
| 170 || [17.0.0+] CreateDeviceHistoryRequest ||
 +
|-
 +
| 180 || [18.0.0+] GetRequestForNintendoAccountReauthentication ||
 
|}
 
|}
  
 
== IFloatingRegistrationRequest ==
 
== IFloatingRegistrationRequest ==
 
This is "nn::account::baas::IFloatingRegistrationRequest".
 
This is "nn::account::baas::IFloatingRegistrationRequest".
 +
 +
Added with [3.0.0+].
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 168: Line 252:
 
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 
|-
 
|-
| 3 || LoadIdTokenCache ||
+
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
 +
|-
 +
| 4 || [19.0.0+] LoadIdTokenCache ||
 
|-
 
|-
 
| 100 || SetSystemProgramIdentification ||
 
| 100 || SetSystemProgramIdentification ||
 +
|-
 +
| 101 || [7.0.0+] RefreshNotificationTokenAsync
 
|-
 
|-
 
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
 
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
Line 176: Line 264:
 
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
 
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
 
|-
 
|-
| 112 || [4.0.0+] InvalidateTokenCache ||
+
| 112 || [4.0.0-6.2.0] InvalidateTokenCache ||
 +
|-
 +
| 113 || [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
 
|-
 
|-
 
| 120 || GetNintendoAccountId ||
 
| 120 || GetNintendoAccountId ||
 +
|-
 +
| 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint ||
 
|-
 
|-
 
| 130 || GetNintendoAccountUserResourceCache ||
 
| 130 || GetNintendoAccountUserResourceCache ||
Line 185: Line 277:
 
|-
 
|-
 
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 133 || [9.0.0+] GetNintendoAccountVerificationUrlCache ||
 +
|-
 +
| 134 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync ||
 +
|-
 +
| 135 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
 +
|-
 +
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
 
|-
 
|-
 
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||
 
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||
Line 191: Line 291:
 
|-
 
|-
 
| 142 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed ||
 
| 142 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed ||
 +
|-
 +
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
 
|-
 
|-
 
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 +
|-
 +
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
 +
|-
 +
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
 +
|-
 +
| 180 || [18.0.0+] GetRequestForNintendoAccountReauthentication ||
 
|-
 
|-
 
| 200 || IsRegistered ||
 
| 200 || IsRegistered ||
Line 201: Line 309:
 
|-
 
|-
 
| 203 || DeleteRegistrationInfoLocally ||
 
| 203 || DeleteRegistrationInfoLocally ||
 +
|-
 +
| 204 || [19.0.0+] UnregisterDeviceAsync ||
 
|-
 
|-
 
| 220 || SynchronizeProfileAsync || Returns an [[#IAsyncContext]].
 
| 220 || SynchronizeProfileAsync || Returns an [[#IAsyncContext]].
Line 207: Line 317:
 
|-
 
|-
 
| 222 || SynchronizeProfileAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 
| 222 || SynchronizeProfileAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 223 || [19.0.0+] DownloadProfileAsync ||
 
|-
 
|-
 
| 250 || IsLinkedWithNintendoAccount ||
 
| 250 || IsLinkedWithNintendoAccount ||
Line 218: Line 330:
 
| 256 || ResumeProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
 
| 256 || ResumeProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
 
|-
 
|-
| 260 || CreateProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
+
| 260 || [3.0.0+] CreateProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
 
|-
 
|-
| 261 || ResumeProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
+
| 261 || [3.0.0+] ResumeProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
 
|-
 
|-
 
| 280 || ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount || Returns an [[#IOAuthProcedure]].
 
| 280 || ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 290 || [8.0.0+] GetRequestForNintendoAccountUserResourceView ||
 +
|-
 +
| 300 || [6.0.0+] TryRecoverNintendoAccountUserStateAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 400 || [6.1.0+] IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay || Takes a total of 0x8-bytes of input, returns an output u8.
 +
|-
 +
| 401 || [6.1.0+] RefreshServiceEntryRequirementCacheForOnlinePlayAsync || Takes a total of 0x8-bytes of input, returns an [[#IAsyncContext]].
 +
|-
 +
| 900 || [9.0.0+] GetAuthenticationInfoForWin ||
 +
|-
 +
| 901 || [9.0.0+] ImportAsyncForWin ||
 
|-
 
|-
 
| 997 || DebugUnlinkNintendoAccountAsync || Returns an [[#IAsyncContext]].
 
| 997 || DebugUnlinkNintendoAccountAsync || Returns an [[#IAsyncContext]].
Line 269: Line 393:
 
== IOAuthProcedureForExternalNsa ==
 
== IOAuthProcedureForExternalNsa ==
 
This is "nn::account::nas::IOAuthProcedureForExternalNsa".
 
This is "nn::account::nas::IOAuthProcedureForExternalNsa".
 +
 +
Added with [3.0.0+].
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 291: Line 417:
 
|-
 
|-
 
| 103 || GetProfileImage ||
 
| 103 || GetProfileImage ||
 +
|-
 +
| 104 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
 +
|-
 +
| 1000 || [19.0.0+] GetRequestForMoving ||
 
|}
 
|}
 +
 +
=== GetProfileLargeImage ===
 +
Takes a type-0x6 output buffer, returns an output u32.
 +
 +
As of 18.0.0 this is stubbed, this eventually returns Result 0x167C.
  
 
== IOAuthProcedureForNintendoAccountLinkage ==
 
== IOAuthProcedureForNintendoAccountLinkage ==
Line 314: Line 449:
 
| 101 || IsNetworkServiceAccountReplaced ||
 
| 101 || IsNetworkServiceAccountReplaced ||
 
|-
 
|-
| 199 || GetUrlForIntroductionOfExtraMembership ||
+
| [2.0.0-5.1.0] 199 || GetUrlForIntroductionOfExtraMembership ||
 
|}
 
|}
  
Line 334: Line 469:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || Get
+
| 0 || [[#Get]]
 
|-
 
|-
| 1 || GetBase
+
| 1 || [[#GetBase]]
 
|-
 
|-
| 10 || GetImageSize
+
| 10 || [[#GetImageSize]]
 
|-
 
|-
| 11 || LoadImage
+
| 11 || [[#LoadImage]]
 
|}
 
|}
 +
 +
=== Get ===
 +
Takes an output type-0x1A buffer for [[#UserData]], returns an output [[#ProfileBase]].
 +
 +
=== GetBase ===
 +
No input, returns an output [[#ProfileBase]].
 +
 +
=== GetImageSize ===
 +
No input, returns an output u32 for the size of the image buffer.
 +
 +
=== LoadImage ===
 +
Takes an output type-0x6 buffer, returns the same output u32 as [[#GetImageSize]].
 +
 +
The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.
  
 
== IProfileEditor ==
 
== IProfileEditor ==
Line 350: Line 499:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || Get
+
| 0 || [[#Get]]
 
|-
 
|-
| 1 || GetBase
+
| 1 || [[#GetBase]]
 
|-
 
|-
| 10 || GetImageSize
+
| 10 || [[#GetImageSize]]
 
|-
 
|-
| 11 || LoadImage
+
| 11 || [[#LoadImage]]
 
|-
 
|-
| 100 || Store
+
| 100 || [[#Store]]
 
|-
 
|-
| 101 || StoreWithImage
+
| 101 || [[#StoreWithImage]]
 
|}
 
|}
 +
 +
=== Store ===
 +
Takes a [[#ProfileBase]] and an input type-0x19 buffer for [[#UserData]].
 +
 +
=== StoreWithImage ===
 +
Takes a [[#ProfileBase]], an input type-0x19 buffer for [[#UserData]], and an input type-0x5 buffer.
  
 
== IAsyncContext ==
 
== IAsyncContext ==
Line 391: Line 546:
 
= acc:u0 =
 
= acc:u0 =
 
This is "nn::account::IAccountServiceForApplication".
 
This is "nn::account::IAccountServiceForApplication".
 +
 +
This was moved to [[NS_Services|ns]] with [13.0.0+].
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 408: Line 565:
 
| 5 || GetProfile || Takes an input userID, returns an [[#IProfile]].
 
| 5 || GetProfile || Takes an input userID, returns an [[#IProfile]].
 
|-
 
|-
| 6 || GetProfileDigest ||
+
| 6 || [3.0.0+] GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 
|-
 
|-
| 50 || IsUserRegistrationRequestPermitted ||
+
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 
|-
 
|-
| 51 || TrySelectUserWithoutInteraction ||
+
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
 
|-
 
|-
| 60 || [5.0.0+] ListOpenContextStoredUsers ||
+
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 
|-
 
|-
| 100 || InitializeApplicationInfo ||
+
| 100 || [[#InitializeApplicationInfoV0]] ||
 
|-
 
|-
| 101 || GetBaasAccountManagerForApplication || Returns an [[#IManagerForApplication]].
+
| 101 || GetBaasAccountManagerForApplication || Takes an input userID, returns an [[#IManagerForApplication]].
 
|-
 
|-
 
| 102 || AuthenticateApplicationAsync || Returns an [[#IAsyncContext]].
 
| 102 || AuthenticateApplicationAsync || Returns an [[#IAsyncContext]].
Line 432: Line 593:
 
| 130 || [5.0.0+] LoadOpenContext ||
 
| 130 || [5.0.0+] LoadOpenContext ||
 
|-
 
|-
 +
| 131 || [6.0.0+] ListOpenContextStoredUsers ||
 +
|-
 +
| 140 || [6.0.0+] [[#InitializeApplicationInfo]] ||
 +
|-
 +
| 141 || [6.0.0+] ListQualifiedUsers ||
 +
|-
 +
| 150 || [6.0.0+] IsUserAccountSwitchLocked ||
 
|}
 
|}
 +
 +
InitializeApplicationInfo* is used by the user-process during service init.
 +
 +
== InitializeApplicationInfoV0 ==
 +
Takes a PID and an input u64 pid_placeholder, no output.
 +
 +
== InitializeApplicationInfo ==
 +
Takes a PID and an input u64 pid_placeholder, no output.
  
 
== IGuestLoginRequest ==
 
== IGuestLoginRequest ==
Line 442: Line 618:
 
|-
 
|-
 
| 0 || GetSessionId
 
| 0 || GetSessionId
 +
|-
 +
| [1.0.0-2.3.0] 11 ||
 
|-
 
|-
 
| 12 || GetAccountId
 
| 12 || GetAccountId
Line 451: Line 629:
 
| 15 || GetProfileImage
 
| 15 || GetProfileImage
 
|-
 
|-
| 21 || LoadIdTokenCache
+
| 21 || [3.0.0+] LoadIdTokenCache
 
|}
 
|}
  
Line 467: Line 645:
 
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 
|-
 
|-
| 3 || LoadIdTokenCache ||
+
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
 +
|-
 +
| 4 || [19.0.0+] LoadIdTokenCache ||
 
|-
 
|-
 
| 130 || GetNintendoAccountUserResourceCacheForApplication ||
 
| 130 || GetNintendoAccountUserResourceCacheForApplication ||
Line 475: Line 655:
 
| 160 || [5.0.0+] StoreOpenContext ||
 
| 160 || [5.0.0+] StoreOpenContext ||
 
|-
 
|-
 +
| 170 || [6.0.0+] LoadNetworkServiceLicenseKindAsync || No input, returns an [[#IAsyncNetworkServiceLicenseKindContext]].
 +
|}
 +
 +
== IAsyncNetworkServiceLicenseKindContext ==
 +
This is "nn::account::detail::IAsyncNetworkServiceLicenseKindContext".
 +
 +
This was added with [6.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetSystemEvent ||
 +
|-
 +
| 1 || Cancel ||
 +
|-
 +
| 2 || HasDone ||
 +
|-
 +
| 3 || GetResult ||
 +
|-
 +
| 100 || GetNetworkServiceLicenseKind ||
 
|}
 
|}
  
 
= acc:u1 =
 
= acc:u1 =
 
This is "nn::account::IAccountServiceForSystemService".
 
This is "nn::account::IAccountServiceForSystemService".
 +
 +
This was moved to [[NS_Services|ns]] with [13.0.0+].
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 496: Line 699:
 
| 5 || GetProfile || Returns an [[#IProfile]].
 
| 5 || GetProfile || Returns an [[#IProfile]].
 
|-
 
|-
| 6 || GetProfileDigest ||
+
| 6 || [3.0.0+] GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 
|-
 
|-
| 50 || IsUserRegistrationRequestPermitted ||
+
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 
|-
 
|-
| 51 || TrySelectUserWithoutInteraction ||
+
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
 
|-
 
|-
| 60 || [5.0.0+] ListOpenContextStoredUsers ||
+
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 
|-
 
|-
 
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
 
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
Line 514: Line 721:
 
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
 
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
 
|-
 
|-
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
+
| 105 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 106 || [9.0.0+] GetProfileSyncNotifier ||
 
|-
 
|-
 
| 110 || StoreSaveDataThumbnail ||
 
| 110 || StoreSaveDataThumbnail ||
Line 524: Line 733:
 
| 113 || [5.0.0+] GetSaveDataThumbnailExistence ||
 
| 113 || [5.0.0+] GetSaveDataThumbnailExistence ||
 
|-
 
|-
| 190 || GetUserLastOpenedApplication ||
+
| 120 || [10.0.0+] ListOpenUsersInApplication ||
 +
|-
 +
| 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
 +
|-
 +
| 140 || [6.0.0+] ListQualifiedUsers ||
 +
|-
 +
| 150 || [10.0.0-10.2.0] AuthenticateApplicationAsync ||
 +
|-
 +
| 151 || [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
 +
|-
 +
| 152 || [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount ||
 
|-
 
|-
| 191 || [5.0.0+] ActivateOpenContextHolder ||
+
| 190 || [1.0.0-9.2.0] GetUserLastOpenedApplication ||
 
|-
 
|-
| 997 || DebugInvalidateTokenCacheForUser ||
+
| 191 || [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) ||
 +
|-
 +
| 401 || [18.0.0+] GetPinCodeLength ||
 +
|-
 +
| 402 || [18.0.0+] GetPinCode ||
 +
|-
 +
| 997 || [3.0.0+] DebugInvalidateTokenCacheForUser ||
 
|-
 
|-
 
| 998 || DebugSetUserStateClose ||
 
| 998 || DebugSetUserStateClose ||
 
|-
 
|-
 
| 999 || DebugSetUserStateOpen ||
 
| 999 || DebugSetUserStateOpen ||
 +
|}
 +
 +
[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.
 +
 +
== IOAuthProcedureForUserRegistration ==
 +
This is "nn::account::nas::IOAuthProcedureForUserRegistration".
 +
 +
This was added with [8.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || PrepareAsync || No input, returns an [[#IAsyncContext]].
 +
|-
 +
| 1 || GetRequest ||
 +
|-
 +
| 2 || ApplyResponse ||
 +
|-
 +
| 3 || ApplyResponseAsync || Takes a type-0x9 input buffer, returns an [[#IAsyncContext]].
 +
|-
 +
| 10 || Suspend ||
 +
|-
 +
| 100 || GetAccountId ||
 +
|-
 +
| 101 || GetLinkedNintendoAccountId ||
 +
|-
 +
| 102 || GetNickname ||
 +
|-
 +
| 103 || GetProfileImage ||
 +
|-
 +
| 104 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
 +
|-
 +
| 110 || RegisterUserAsync || No input, returns an [[#IAsyncContext]].
 +
|-
 +
| 111 || GetUid ||
 +
|-
 +
| 200 || [17.0.0+] ApplyResponseForUserCreationAsync ||
 +
|-
 +
| 205 || [17.0.0+] SuspendAfterApplyResponse ||
 +
|-
 +
| 210 || [17.0.0+] IsProfileAvailable ||
 +
|-
 +
| 220 || [17.0.0+] RegisterUserAsyncWithoutProfile ||
 +
|-
 +
| 221 || [17.0.0+] RegisterUserWithProfileAsync ||
 +
|-
 +
| 230 || [18.0.0+] RegisterUserWithLargeImageProfileAsync ||
 
|}
 
|}
  
Line 548: Line 821:
 
| 2 || GetDeviceAccountId ||
 
| 2 || GetDeviceAccountId ||
 
|-
 
|-
| 50 || RegisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
+
| 50 || [1.0.0-6.2.0] RegisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
 
|-
 
|-
| 51 || UnregisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
+
| 51 || [1.0.0-6.2.0] UnregisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
 
|}
 
|}
 +
 +
= dauth:0 =
 +
This is "nn::dauth::detail::IService".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || EnsureAuthenticationTokenCacheAsync ([5.0.0-5.1.0] GeneratePostData)
 +
|-
 +
| 1 || [6.0.0+] LoadAuthenticationTokenCache
 +
|-
 +
| 2 || [6.0.0+] InvalidateAuthenticationTokenCache
 +
|-
 +
| 3 || [16.0.0+] IsDeviceAuthenticationTokenCacheAvailable
 +
|-
 +
| 10 || [6.0.0+] EnsureEdgeTokenCacheAsync
 +
|-
 +
| 11 || [6.0.0+] LoadEdgeTokenCache
 +
|-
 +
| 12 || [6.0.0+] InvalidateEdgeTokenCache
 +
|-
 +
| 13 || [16.0.0+] IsEdgeTokenCacheAvailable
 +
|-
 +
| 20 || [11.0.0+] EnsureApplicationAuthenticationCacheAsync
 +
|-
 +
| 21 || [11.0.0+] LoadApplicationAuthenticationTokenCache
 +
|-
 +
| 22 || [11.0.0+] LoadApplicationNetworkServiceClientConfigCache
 +
|-
 +
| 23 || [11.0.0+] IsApplicationAuthenticationCacheAvailable
 +
|-
 +
| 24 || [11.0.0+] InvalidateApplicationAuthenticationCache
 +
|-
 +
| 1000 || [15.0.0+] GetInactiveElicenseUsedEvent
 +
|-
 +
| 9000 || [15.0.0+] ImportVirtualClientCertificate
 +
|-
 +
| 9010 || [15.0.0+] DeleteVirtualClientCertificate
 +
|}
 +
 +
[10.0.0+] EnsureEdgeTokenCacheAsync now takes an additional 8-bytes of input.
 +
 +
== IAsyncResult ==
 +
This is "nn::dauth::detail::IAsyncResult".
 +
 +
This was added with [6.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetResult
 +
|-
 +
| 1 || Cancel
 +
|-
 +
| 2 || IsAvailable
 +
|-
 +
| 3 || GetSystemEvent
 +
|}
 +
 +
= acc:e =
 +
This is "nn::account::IAccountEntityServiceForAccountPolicy".
 +
 +
This was added with [13.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetUserCount ||
 +
|-
 +
| 1 || GetUserExistence ||
 +
|-
 +
| 2 || ListAllUsers ||
 +
|-
 +
| 3 || ListOpenUsers ||
 +
|-
 +
| 4 || GetLastOpenedUser ||
 +
|-
 +
| 5 || GetProfile || Returns an [[#IProfile]].
 +
|-
 +
| 6 || GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 +
|-
 +
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 +
|-
 +
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 +
|-
 +
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
 +
|-
 +
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 106 || GetProfileSyncNotifier ||
 +
|-
 +
| 110 || StoreSaveDataThumbnail ||
 +
|-
 +
| 111 || ClearSaveDataThumbnail ||
 +
|-
 +
| 112 || LoadSaveDataThumbnail ||
 +
|-
 +
| 113 || GetSaveDataThumbnailExistence ||
 +
|-
 +
| 120 || ListOpenUsersInApplication ||
 +
|-
 +
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
 +
|-
 +
| 140 || ListQualifiedUsers ||
 +
|-
 +
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
 +
|-
 +
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
 +
|-
 +
| 170 || GetNasOp2MembershipStateChangeNotifier ||
 +
|-
 +
| 191 || UpdateNotificationReceiverInfo ||
 +
|-
 +
| 200 || BeginUserRegistration ||
 +
|-
 +
| 201 || CompleteUserRegistration ||
 +
|-
 +
| 202 || CancelUserRegistration ||
 +
|-
 +
| 203 || DeleteUser ||
 +
|-
 +
| 204 || SetUserPosition ||
 +
|-
 +
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
 +
|-
 +
| 206 || CompleteUserRegistrationForcibly ||
 +
|-
 +
| 210 || CreateFloatingRegistrationRequest || Returns an [[#IFloatingRegistrationRequest]].
 +
|-
 +
| 211 || CreateProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x4-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
 +
|-
 +
| 212 || ResumeProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x14-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
 +
|-
 +
| 213 || [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount ||
 +
|-
 +
| 214 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount ||
 +
|-
 +
| 215 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse ||
 +
|-
 +
| 230 || AuthenticateServiceAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 250 || GetBaasAccountAdministrator || Returns an [[#IAdministrator]].
 +
|-
 +
| 290 || ProxyProcedureForGuestLoginWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
 +
|-
 +
| 291 || ProxyProcedureForFloatingRegistrationWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
 +
|-
 +
| 299 || SuspendBackgroundDaemon || Returns an [[#ISessionObject]].
 +
|-
 +
| 400 || [18.0.0+] SetPinCode ||
 +
|-
 +
| 401 || [18.0.0+] GetPinCodeLength ||
 +
|-
 +
| 402 || [18.0.0+] GetPinCode ||
 +
|-
 +
| 410 || [18.0.0+] GetPinCodeErrorCount ||
 +
|-
 +
| 411 || [18.0.0+] ResetPinCodeErrorCount ||
 +
|-
 +
| 412 || [18.0.0+] IncrementPinCodeErrorCount ||
 +
|-
 +
| 420 || [19.0.0+] SetStartPenaltyTime ||
 +
|-
 +
| 421 || [19.0.0+] GetStartPenaltyTime ||
 +
|-
 +
| 900 || SetUserUnqualifiedForDebug ||
 +
|-
 +
| 901 || UnsetUserUnqualifiedForDebug ||
 +
|-
 +
| 902 || ListUsersUnqualifiedForDebug ||
 +
|-
 +
| 910 || [16.0.0+] RefreshFirmwareSettingsForDebug ||
 +
|-
 +
| 997 || DebugInvalidateTokenCacheForUser ||
 +
|-
 +
| 998 || DebugSetUserStateClose ||
 +
|-
 +
| 999 || DebugSetUserStateOpen ||
 +
|-
 +
| 1000 || CreateIAccountEntityServiceForApplication || Returns an [[#IAccountEntityServiceForApplication]].
 +
|-
 +
| 1100 || CreateIUserStateManager || Returns an [[#IUserStateManager]].
 +
|-
 +
| 10050 || IsUserRegistrationRequestPermittedForAccountPolicy ||
 +
|-
 +
| 10105 || CheckNetworkServiceAvailabilityAsyncForAccountPolicy ||
 +
|}
 +
 +
== IProfile ==
 +
This is "nn::account::profile::IProfile".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#Get]]
 +
|-
 +
| 1 || [[#GetBase]]
 +
|-
 +
| 10 || [[#GetImageSize]]
 +
|-
 +
| 11 || [[#LoadImage]]
 +
|-
 +
| 20 || [18.0.0+] GetLargeImageSize
 +
|-
 +
| 21 || [18.0.0+] LoadLargeImage
 +
|-
 +
| 30 || [18.0.0+] GetImageId
 +
|-
 +
| 40 || [19.0.0+] GetStableUserId
 +
|}
 +
 +
=== Get ===
 +
Takes an output type-0x1A buffer for [[#UserData]], returns an output [[#ProfileBase]].
 +
 +
=== GetBase ===
 +
No input, returns an output [[#ProfileBase]].
 +
 +
=== GetImageSize ===
 +
No input, returns an output u32 for the size of the image buffer.
 +
 +
=== LoadImage ===
 +
Takes an output type-0x6 buffer, returns the same output u32 as [[#GetImageSize]].
 +
 +
The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.
 +
 +
== IProfileEditor ==
 +
This is "nn::account::profile::IProfileEditor".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#Get]]
 +
|-
 +
| 1 || [[#GetBase]]
 +
|-
 +
| 10 || [[#GetImageSize]]
 +
|-
 +
| 11 || [[#LoadImage]]
 +
|-
 +
| 20 || [18.0.0+] GetLargeImageSize
 +
|-
 +
| 21 || [18.0.0+] LoadLargeImage
 +
|-
 +
| 30 || [18.0.0+] GetImageId
 +
|-
 +
| 40 || [19.0.0+] GetStableUserId
 +
|-
 +
| 100 || [[#Store]]
 +
|-
 +
| 101 || [[#StoreWithImage]]
 +
|-
 +
| 110 || [18.0.0+] StoreWithLargeImage
 +
|}
 +
 +
=== Store ===
 +
Takes a [[#ProfileBase]] and an input type-0x19 buffer for [[#UserData]].
 +
 +
=== StoreWithImage ===
 +
Takes a [[#ProfileBase]], an input type-0x19 buffer for [[#UserData]], and an input type-0x5 buffer.
 +
 +
== IAsyncContext ==
 +
This is "nn::account::detail::IAsyncContext".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetSystemEvent
 +
|-
 +
| 1 || Cancel
 +
|-
 +
| 2 || HasDone
 +
|-
 +
| 3 || GetResult
 +
|}
 +
 +
== ISessionObject ==
 +
This is "nn::account::detail::ISessionObject".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 999 || Dummy
 +
|}
 +
 +
== INotifier ==
 +
This is "nn::account::detail::INotifier".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetSystemEvent
 +
|}
 +
 +
== IManagerForSystemService ==
 +
This is "nn::account::baas::IManagerForSystemService".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || CheckAvailability ||
 +
|-
 +
| 1 || GetAccountId ||
 +
|-
 +
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
 +
|-
 +
| 4 || [19.0.0+] LoadIdTokenCache ||
 +
|-
 +
| 100 || SetSystemProgramIdentification ||
 +
|-
 +
| 101 || RefreshNotificationTokenAsync ||
 +
|-
 +
| 110 || GetServiceEntryRequirementCacheForLogin ||
 +
|-
 +
| 111 || InvalidateServiceEntryRequirementCache ||
 +
|-
 +
| 113 || GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
 +
|-
 +
| 120 || GetNintendoAccountId ||
 +
|-
 +
| 121 || CalculateNintendoAccountAuthenticationFingerprint ||
 +
|-
 +
| 130 || GetNintendoAccountUserResourceCache ||
 +
|-
 +
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 133 || GetNintendoAccountVerificationUrlCache ||
 +
|-
 +
| 134 || RefreshNintendoAccountVerificationUrlCacheAsync ||
 +
|-
 +
| 135 || RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
 +
|-
 +
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
 +
|-
 +
| 140 || GetNetworkServiceLicenseCache ||
 +
|-
 +
| 141 || RefreshNetworkServiceLicenseCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 142 || RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
 +
|-
 +
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 +
|-
 +
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
 +
|-
 +
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
 +
|-
 +
| 180 || [18.0.0+] GetRequestForNintendoAccountReauthentication ||
 +
|}
 +
 +
== IFloatingRegistrationRequest ==
 +
This is "nn::account::baas::IFloatingRegistrationRequest".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetSessionId ||
 +
|-
 +
| 12 || GetAccountId ||
 +
|-
 +
| 13 || GetLinkedNintendoAccountId ||
 +
|-
 +
| 14 || GetNickname ||
 +
|-
 +
| 15 || GetProfileImage ||
 +
|-
 +
| 16 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
 +
|-
 +
| 21 || LoadIdTokenCache ||
 +
|-
 +
| 100 || RegisterUser ||
 +
|-
 +
| 101 || RegisterUserWithUid ||
 +
|-
 +
| 102 || RegisterNetworkServiceAccountAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 103 || RegisterNetworkServiceAccountWithUidAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 110 || SetSystemProgramIdentification ||
 +
|-
 +
| 111 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 +
|}
 +
 +
== IAdministrator ==
 +
This is "nn::account::baas::IAdministrator".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || CheckAvailability ||
 +
|-
 +
| 1 || GetAccountId ||
 +
|-
 +
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 3 || LoadIdTokenCache ||
 +
|-
 +
| 100 || SetSystemProgramIdentification ||
 +
|-
 +
| 101 || RefreshNotificationTokenAsync ||
 +
|-
 +
| 110 || GetServiceEntryRequirementCacheForLogin ||
 +
|-
 +
| 111 || InvalidateServiceEntryRequirementCache ||
 +
|-
 +
| 113 || GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
 +
|-
 +
| 120 || GetNintendoAccountId ||
 +
|-
 +
| 121 || CalculateNintendoAccountAuthenticationFingerprint ||
 +
|-
 +
| 130 || GetNintendoAccountUserResourceCache ||
 +
|-
 +
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 133 || GetNintendoAccountVerificationUrlCache ||
 +
|-
 +
| 134 || RefreshNintendoAccountVerificationUrlCacheAsync ||
 +
|-
 +
| 135 || RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
 +
|-
 +
| 140 || GetNetworkServiceLicenseCache ||
 +
|-
 +
| 141 || RefreshNetworkServiceLicenseCacheAsync ||
 +
|-
 +
| 142 || RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed ||
 +
|-
 +
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 +
|-
 +
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
 +
|-
 +
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
 +
|-
 +
| 170 || [17.0.0+] CreateDeviceHistoryRequest ||
 +
|-
 +
| 200 || IsRegistered ||
 +
|-
 +
| 201 || RegisterAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 202 || UnregisterAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 203 || DeleteRegistrationInfoLocally ||
 +
|-
 +
| 220 || SynchronizeProfileAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 221 || UploadProfileAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 222 || SynchronizeProfileAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
 +
|-
 +
| 250 || IsLinkedWithNintendoAccount ||
 +
|-
 +
| 251 || CreateProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
 +
|-
 +
| 252 || ResumeProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
 +
|-
 +
| 255 || CreateProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 256 || ResumeProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 260 || CreateProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 261 || ResumeProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 280 || ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount || Returns an [[#IOAuthProcedure]].
 +
|-
 +
| 290 || GetRequestForNintendoAccountUserResourceView ||
 +
|-
 +
| 300 || TryRecoverNintendoAccountUserStateAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 400 || IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay || Takes a total of 0x8-bytes of input, returns an output u8.
 +
|-
 +
| 401 || RefreshServiceEntryRequirementCacheForOnlinePlayAsync || Takes a total of 0x8-bytes of input, returns an [[#IAsyncContext]].
 +
|-
 +
| 410 || [13.1.0+] CheckRequiredLicenseForLexAsync ||
 +
|-
 +
| 900 || GetAuthenticationInfoForWin ||
 +
|-
 +
| 901 || ImportAsyncForWin ||
 +
|-
 +
| 997 || DebugUnlinkNintendoAccountAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 998 || DebugSetAvailabilityErrorDetail ||
 +
|}
 +
 +
== IAuthorizationRequest ==
 +
This is "nn::account::nas::IAuthorizationRequest".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetSessionId ||
 +
|-
 +
| 10 || InvokeWithoutInteractionAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 19 || IsAuthorized ||
 +
|-
 +
| 20 || GetAuthorizationCode ||
 +
|-
 +
| 21 || GetIdToken ||
 +
|-
 +
| 22 || GetState ||
 +
|}
 +
 +
== IOAuthProcedure ==
 +
This is "nn::account::http::IOAuthProcedure".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 1 || GetRequest ||
 +
|-
 +
| 2 || ApplyResponse ||
 +
|-
 +
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 10 || Suspend ||
 +
|}
 +
 +
== IOAuthProcedureForExternalNsa ==
 +
This is "nn::account::nas::IOAuthProcedureForExternalNsa".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 1 || GetRequest ||
 +
|-
 +
| 2 || ApplyResponse ||
 +
|-
 +
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 10 || Suspend ||
 +
|-
 +
| 100 || GetAccountId ||
 +
|-
 +
| 101 || GetLinkedNintendoAccountId ||
 +
|-
 +
| 102 || GetNickname ||
 +
|-
 +
| 103 || GetProfileImage ||
 +
|}
 +
 +
== IOAuthProcedureForNintendoAccountLinkage ==
 +
This is "nn::account::nas::IOAuthProcedureForNintendoAccountLinkage".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 1 || GetRequest ||
 +
|-
 +
| 2 || ApplyResponse ||
 +
|-
 +
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 10 || Suspend ||
 +
|-
 +
| 100 || GetRequestWithTheme ||
 +
|-
 +
| 101 || IsNetworkServiceAccountReplaced ||
 +
|-
 +
| 200 || [16.0.0+] ApplyAsyncWithAuthorizedToken ||
 +
|}
 +
 +
== IOAuthProcedureForUserRegistration ==
 +
This is "nn::account::nas::IOAuthProcedureForUserRegistration".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || PrepareAsync || No input, returns an [[#IAsyncContext]].
 +
|-
 +
| 1 || GetRequest ||
 +
|-
 +
| 2 || ApplyResponse ||
 +
|-
 +
| 3 || ApplyResponseAsync || Takes a type-0x9 input buffer, returns an [[#IAsyncContext]].
 +
|-
 +
| 10 || Suspend ||
 +
|-
 +
| 100 || GetAccountId ||
 +
|-
 +
| 101 || GetLinkedNintendoAccountId ||
 +
|-
 +
| 102 || GetNickname ||
 +
|-
 +
| 103 || GetProfileImage ||
 +
|-
 +
| 110 || RegisterUserAsync || No input, returns an [[#IAsyncContext]].
 +
|-
 +
| 111 || GetUid ||
 +
|}
 +
 +
== IAccountEntityServiceForApplication ==
 +
This is "nn::account::IAccountEntityServiceForApplication".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetUserCount ||
 +
|-
 +
| 1 || GetUserExistence ||
 +
|-
 +
| 2 || ListAllUsers ||
 +
|-
 +
| 3 || ListOpenUsers ||
 +
|-
 +
| 4 || GetLastOpenedUser ||
 +
|-
 +
| 5 || GetProfile || Takes an input userID, returns an [[#IProfile]].
 +
|-
 +
| 6 || GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 +
|-
 +
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 +
|-
 +
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 +
|-
 +
| 100 || [[#InitializeApplicationInfoV0]] ||
 +
|-
 +
| 101 || GetBaasAccountManagerForApplication || Takes an input userID, returns an [[#IManagerForApplication]].
 +
|-
 +
| 102 || AuthenticateApplicationAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 103 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 110 || StoreSaveDataThumbnail ||
 +
|-
 +
| 111 || ClearSaveDataThumbnail ||
 +
|-
 +
| 120 || CreateGuestLoginRequest || Returns an [[#IGuestLoginRequest]].
 +
|-
 +
| 130 || LoadOpenContext ||
 +
|-
 +
| 131 || ListOpenContextStoredUsers ||
 +
|-
 +
| 140 || [[#InitializeApplicationInfoV1]] ||
 +
|-
 +
| 141 || ListQualifiedUsers ||
 +
|-
 +
| 150 || IsUserAccountSwitchLocked ||
 +
|-
 +
| 160 || InitializeApplicationInfoV2 ||
 +
|-
 +
| 10050 || IsUserRegistrationRequestPermittedForAccountPolicy ||
 +
|-
 +
| 10100 || InitializeApplicationInfoV0ForAccountPolicy ||
 +
|-
 +
| 10140 || InitializeApplicationInfoV1ForAccountPolicy ||
 +
|-
 +
| 10160 || InitializeApplicationInfoV2ForAccountPolicy ||
 +
|}
 +
 +
InitializeApplicationInfo* is used by the user-process during service init.
 +
 +
=== IsUserRegistrationRequestPermitted ===
 +
Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.
 +
 +
=== TrySelectUserWithoutInteraction ===
 +
Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.
 +
 +
=== InitializeApplicationInfoV0 ===
 +
Takes a PID and an input u64 pid_placeholder, no output.
 +
 +
=== InitializeApplicationInfoV1 ===
 +
Takes a PID and an input u64 pid_placeholder, no output.
 +
 +
=== IGuestLoginRequest ===
 +
This is "nn::account::baas::IGuestLoginRequest".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetSessionId
 +
|-
 +
| 12 || GetAccountId
 +
|-
 +
| 13 || GetLinkedNintendoAccountId
 +
|-
 +
| 14 || GetNickname
 +
|-
 +
| 15 || GetProfileImage
 +
|-
 +
| 16 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]]
 +
|-
 +
| 21 || LoadIdTokenCache
 +
|}
 +
 +
=== IManagerForApplication ===
 +
This is "nn::account::baas::IManagerForApplication".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || CheckAvailability ||
 +
|-
 +
| 1 || GetAccountId ||
 +
|-
 +
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 3 || LoadIdTokenCache ||
 +
|-
 +
| 130 || GetNintendoAccountUserResourceCacheForApplication ||
 +
|-
 +
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
 +
|-
 +
| 160 || StoreOpenContext ||
 +
|-
 +
| 170 || EnsureIdTokenCacheForOnlinePlayAsync || No input, returns an [[#IAsyncContextForLoginForOnlinePlay]].
 +
|}
 +
 +
==== IAsyncContextForLoginForOnlinePlay ====
 +
This is "nn::account::baas::IAsyncContextForLoginForOnlinePlay".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetSystemEvent ||
 +
|-
 +
| 1 || Cancel ||
 +
|-
 +
| 2 || HasDone ||
 +
|-
 +
| 3 || GetResult ||
 +
|-
 +
| 100 || GetNetworkServiceLicenseInfoForOnlinePlay ||
 +
|}
 +
 +
== IUserStateManager ==
 +
This is "nn::account::detail::IUserStateManager".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 100 || EnableQualificationLimitation
 +
|-
 +
| 101 || DisableQualificationLimitation
 +
|-
 +
| 110 || SelectQualifiedUsers
 +
|-
 +
| 900 || [14.0.0+] SetUserUnqualifiedForDebug
 +
|-
 +
| 901 || [14.0.0+] UnsetUserUnqualifiedForDebug
 +
|-
 +
| 902 || [14.0.0+] ListUsersUnqualifiedForDebug
 +
|}
 +
 +
= acc:e:u1 =
 +
This is "nn::account::IAccountServiceForSystemService".
 +
 +
This was added with [13.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetUserCount ||
 +
|-
 +
| 1 || GetUserExistence ||
 +
|-
 +
| 2 || ListAllUsers ||
 +
|-
 +
| 3 || ListOpenUsers ||
 +
|-
 +
| 4 || GetLastOpenedUser ||
 +
|-
 +
| 5 || GetProfile || Returns an [[#IProfile]].
 +
|-
 +
| 6 || GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 +
|-
 +
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 +
|-
 +
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
 +
|-
 +
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 106 || GetProfileSyncNotifier ||
 +
|-
 +
| 110 || StoreSaveDataThumbnail ||
 +
|-
 +
| 111 || ClearSaveDataThumbnail ||
 +
|-
 +
| 112 || LoadSaveDataThumbnail ||
 +
|-
 +
| 113 || GetSaveDataThumbnailExistence ||
 +
|-
 +
| 120 || ListOpenUsersInApplication ||
 +
|-
 +
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
 +
|-
 +
| 140 || ListQualifiedUsers ||
 +
|-
 +
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
 +
|-
 +
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
 +
|-
 +
| 170 || GetNasOp2MembershipStateChangeNotifier ||
 +
|-
 +
| 191 || UpdateNotificationReceiverInfo ||
 +
|-
 +
| 997 || DebugInvalidateTokenCacheForUser ||
 +
|-
 +
| 998 || DebugSetUserStateClose ||
 +
|-
 +
| 999 || DebugSetUserStateOpen ||
 +
|}
 +
 +
= acc:e:u2 =
 +
This is "nn::account::IAccountServiceForSystemServiceWithProfileEditor".
 +
 +
This was added with [13.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetUserCount ||
 +
|-
 +
| 1 || GetUserExistence ||
 +
|-
 +
| 2 || ListAllUsers ||
 +
|-
 +
| 3 || ListOpenUsers ||
 +
|-
 +
| 4 || GetLastOpenedUser ||
 +
|-
 +
| 5 || GetProfile || Returns an [[#IProfile]].
 +
|-
 +
| 6 || GetProfileDigest ||
 +
|-
 +
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
 +
|-
 +
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
 +
|-
 +
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
 +
|-
 +
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
 +
|-
 +
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
 +
|-
 +
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
 +
|-
 +
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
 +
|-
 +
| 106 || GetProfileSyncNotifier ||
 +
|-
 +
| 110 || StoreSaveDataThumbnail ||
 +
|-
 +
| 111 || ClearSaveDataThumbnail ||
 +
|-
 +
| 112 || LoadSaveDataThumbnail ||
 +
|-
 +
| 113 || GetSaveDataThumbnailExistence ||
 +
|-
 +
| 120 || ListOpenUsersInApplication ||
 +
|-
 +
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
 +
|-
 +
| 140 || ListQualifiedUsers ||
 +
|-
 +
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
 +
|-
 +
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
 +
|-
 +
| 170 || GetNasOp2MembershipStateChangeNotifier ||
 +
|-
 +
| 191 || UpdateNotificationReceiverInfo ||
 +
|-
 +
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
 +
|-
 +
| 401 || [18.0.0+] GetPinCodeLength ||
 +
|-
 +
| 402 || [18.0.0+] GetPinCode ||
 +
|-
 +
| 997 || DebugInvalidateTokenCacheForUser ||
 +
|-
 +
| 998 || DebugSetUserStateClose ||
 +
|-
 +
| 999 || DebugSetUserStateOpen ||
 +
|}
 +
 +
= UserData =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4? || ?
 +
|-
 +
| 0x4 || 0x4? || Icon ID. 0 = Mii, the rest are character icon IDs.
 +
|-
 +
| 0x8 || 0x1? || Profile icon background color ID
 +
|-
 +
| 0x9 || 0x7 || ?
 +
|-
 +
| 0x10 || 0x10 || Some ID related to the Mii? All zeros when a character icon is used.
 +
|-
 +
| 0x20 || 0x60 || Usually zeros?
 +
|}
 +
 +
This is a 0x80-byte struct.
 +
 +
= ProfileBase =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x10 || userID
 +
|-
 +
| 0x10 || 0x8 || POSIX UTC timestamp, for last account edit.
 +
|-
 +
| 0x18 || 0x20 || UTF-8 Nickname. Official sw uses strncpy to copy this into another struct (<code>nn::account::Nickname</code>), with a NUL-byte written after the copied data.
 +
|-
 +
|}
 +
 +
This is a 0x38-byte struct.
 +
 +
= Uid =
 +
This is "nn::account::Uid". This is a 0x10-byte struct. This contains 2 u64s for the UserId.
  
 
[[Category:Services]]
 
[[Category:Services]]

Latest revision as of 20:14, 8 October 2024

acc:su

This is "nn::account::IAccountServiceForAdministrator".

This was moved to ns with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Returns an #IProfile.
6 [3.0.0+] GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
60 [5.0.0-5.1.0] ListOpenContextStoredUsers
99 [6.0.0+] DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 GetUserRegistrationNotifier Returns an #INotifier.
101 GetUserStateChangeNotifier Returns an #INotifier.
102 GetBaasAccountManagerForSystemService Returns an #IManagerForSystemService.
103 GetBaasUserAvailabilityChangeNotifier Returns an #INotifier.
104 GetProfileUpdateNotifier Returns an #INotifier.
105 [4.0.0+] CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
106 [9.0.0+] GetProfileSyncNotifier
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
112 LoadSaveDataThumbnail
113 [5.0.0+] GetSaveDataThumbnailExistence
120 [10.0.0+] ListOpenUsersInApplication
130 [6.0.0+] ActivateOpenContextRetention Takes a total of 0x8-bytes of input, returns an #ISessionObject.
140 [6.0.0+] ListQualifiedUsers
150 [10.0.0-10.2.0] AuthenticateApplicationAsync
151 [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync
152 [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount
190 [1.0.0-9.2.0] GetUserLastOpenedApplication
191 [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder)
200 BeginUserRegistration
201 CompleteUserRegistration
202 CancelUserRegistration
203 DeleteUser
204 SetUserPosition
205 GetProfileEditor Takes an input userID and returns an #IProfileEditor.
206 CompleteUserRegistrationForcibly
210 [3.0.0+] CreateFloatingRegistrationRequest Returns an #IFloatingRegistrationRequest.
211 [8.0.0+] CreateProcedureToRegisterUserWithNintendoAccount Takes a total of 0x4-bytes of input and a handle, returns an #IOAuthProcedureForUserRegistration.
212 [8.0.0+] ResumeProcedureToRegisterUserWithNintendoAccount Takes a total of 0x14-bytes of input and a handle, returns an #IOAuthProcedureForUserRegistration.
213 [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount
214 [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount
215 [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse
230 AuthenticateServiceAsync Returns an #IAsyncContext.
250 GetBaasAccountAdministrator Returns an #IAdministrator.
290 ProxyProcedureForGuestLoginWithNintendoAccount Returns an #IOAuthProcedureForExternalNsa (formerly #IOAuthProcedureForGuestLogin with [1.0.0-2.3.0]).
291 [3.0.0+] ProxyProcedureForFloatingRegistrationWithNintendoAccount Returns an #IOAuthProcedureForExternalNsa.
299 SuspendBackgroundDaemon Returns an #ISessionObject.
400 [18.0.0+] SetPinCode
401 [18.0.0+] GetPinCodeLength
402 [18.0.0+] GetPinCode
410 [18.0.0+] GetPinCodeErrorCount
411 [18.0.0+] ResetPinCodeErrorCount
412 [18.0.0+] IncrementPinCodeErrorCount
420 [19.0.0+] SetStartPenaltyTime
421 [19.0.0+] GetStartPenaltyTime
900 [13.0.0+] SetUserUnqualifiedForDebug
901 [13.0.0+] UnsetUserUnqualifiedForDebug
902 [13.0.0+] ListUsersUnqualifiedForDebug
910 [16.0.0+] RefreshFirmwareSettingsForDebug
997 [3.0.0+] DebugInvalidateTokenCacheForUser
998 DebugSetUserStateClose
999 DebugSetUserStateOpen

[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.

IsUserRegistrationRequestPermitted

Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.

TrySelectUserWithoutInteraction

Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.

IManagerForSystemService

This is "nn::account::baas::IManagerForSystemService".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 LoadIdTokenCache
100 SetSystemProgramIdentification
101 [7.0.0+] RefreshNotificationTokenAsync
110 [4.0.0+] GetServiceEntryRequirementCache
111 [4.0.0+] InvalidateServiceEntryRequirementCache
112 [4.0.0-6.2.0] InvalidateTokenCache
113 [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
120 GetNintendoAccountId
121 [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint
130 GetNintendoAccountUserResourceCache
131 RefreshNintendoAccountUserResourceCacheAsync Returns an #IAsyncContext.
132 RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
133 [9.0.0+] GetNintendoAccountVerificationUrlCache
134 [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync
135 [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed
140 [5.0.0+] GetNetworkServiceLicenseCache
141 [5.0.0+] RefreshNetworkServiceLicenseCacheAsync Returns an #IAsyncContext.
142 [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache
161 [16.0.0+] RequireReauthenticationOfNetworkServiceAccount
170 [17.0.0+] CreateDeviceHistoryRequest
180 [18.0.0+] GetRequestForNintendoAccountReauthentication

IFloatingRegistrationRequest

This is "nn::account::baas::IFloatingRegistrationRequest".

Added with [3.0.0+].

Cmd Name Notes
0 GetSessionId
12 GetAccountId
13 GetLinkedNintendoAccountId
14 GetNickname
15 GetProfileImage
21 LoadIdTokenCache
100 RegisterUser ([1.0.0-3.0.2] RegisterAsync) [1.0.0-3.0.2] Used to return an #IAsyncContext.
101 RegisterUserWithUid ([1.0.0-3.0.2] RegisterWithUidAsync) [1.0.0-3.0.2] Used to return an #IAsyncContext.
102 [4.0.0+] RegisterNetworkServiceAccountAsync Returns an #IAsyncContext.
103 [4.0.0+] RegisterNetworkServiceAccountWithUidAsync Returns an #IAsyncContext.
110 SetSystemProgramIdentification
111 EnsureIdTokenCacheAsync Returns an #IAsyncContext.

IAdministrator

This is "nn::account::baas::IAdministrator".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache)
4 [19.0.0+] LoadIdTokenCache
100 SetSystemProgramIdentification
101 [7.0.0+] RefreshNotificationTokenAsync
110 [4.0.0+] GetServiceEntryRequirementCache
111 [4.0.0+] InvalidateServiceEntryRequirementCache
112 [4.0.0-6.2.0] InvalidateTokenCache
113 [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
120 GetNintendoAccountId
121 [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint
130 GetNintendoAccountUserResourceCache
131 RefreshNintendoAccountUserResourceCacheAsync Returns an #IAsyncContext.
132 RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
133 [9.0.0+] GetNintendoAccountVerificationUrlCache
134 [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync
135 [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed
136 [19.0.0+] GetNintendoAccountUserResourceCache
140 [5.0.0+] GetNetworkServiceLicenseCache
141 [5.0.0+] RefreshNetworkServiceLicenseCacheAsync
142 [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed
143 [15.0.0+] GetNetworkServiceLicenseCacheEx
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache
161 [16.0.0+] RequireReauthenticationOfNetworkServiceAccount
180 [18.0.0+] GetRequestForNintendoAccountReauthentication
200 IsRegistered
201 RegisterAsync Returns an #IAsyncContext.
202 UnregisterAsync Returns an #IAsyncContext.
203 DeleteRegistrationInfoLocally
204 [19.0.0+] UnregisterDeviceAsync
220 SynchronizeProfileAsync Returns an #IAsyncContext.
221 UploadProfileAsync Returns an #IAsyncContext.
222 SynchronizeProfileAsyncIfSecondsElapsed Returns an #IAsyncContext.
223 [19.0.0+] DownloadProfileAsync
250 IsLinkedWithNintendoAccount
251 CreateProcedureToLinkWithNintendoAccount Returns an #IOAuthProcedureForNintendoAccountLinkage.
252 ResumeProcedureToLinkWithNintendoAccount Returns an #IOAuthProcedureForNintendoAccountLinkage.
255 CreateProcedureToUpdateLinkageStateOfNintendoAccount Returns an #IOAuthProcedure.
256 ResumeProcedureToUpdateLinkageStateOfNintendoAccount Returns an #IOAuthProcedure.
260 [3.0.0+] CreateProcedureToLinkNnidWithNintendoAccount Returns an #IOAuthProcedure.
261 [3.0.0+] ResumeProcedureToLinkNnidWithNintendoAccount Returns an #IOAuthProcedure.
280 ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount Returns an #IOAuthProcedure.
290 [8.0.0+] GetRequestForNintendoAccountUserResourceView
300 [6.0.0+] TryRecoverNintendoAccountUserStateAsync Returns an #IAsyncContext.
400 [6.1.0+] IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay Takes a total of 0x8-bytes of input, returns an output u8.
401 [6.1.0+] RefreshServiceEntryRequirementCacheForOnlinePlayAsync Takes a total of 0x8-bytes of input, returns an #IAsyncContext.
900 [9.0.0+] GetAuthenticationInfoForWin
901 [9.0.0+] ImportAsyncForWin
997 DebugUnlinkNintendoAccountAsync Returns an #IAsyncContext.
998 DebugSetAvailabilityErrorDetail

IAuthorizationRequest

This is "nn::account::nas::IAuthorizationRequest".

Cmd Name Notes
0 GetSessionId
10 InvokeWithoutInteractionAsync Returns an #IAsyncContext.
19 IsAuthorized
20 GetAuthorizationCode
21 GetIdToken
22 GetState

IOAuthProcedure

This is "nn::account::http::IOAuthProcedure".

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend

IOAuthProcedureForExternalNsa

This is "nn::account::nas::IOAuthProcedureForExternalNsa".

Added with [3.0.0+].

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend
100 GetAccountId
101 GetLinkedNintendoAccountId
102 GetNickname
103 GetProfileImage
104 [18.0.0+] GetProfileLargeImage
1000 [19.0.0+] GetRequestForMoving

GetProfileLargeImage

Takes a type-0x6 output buffer, returns an output u32.

As of 18.0.0 this is stubbed, this eventually returns Result 0x167C.

IOAuthProcedureForNintendoAccountLinkage

This is "nn::account::nas::IOAuthProcedureForNintendoAccountLinkage".

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend
100 GetRequestWithTheme
101 IsNetworkServiceAccountReplaced
[2.0.0-5.1.0] 199 GetUrlForIntroductionOfExtraMembership

INotifier

This is "nn::account::detail::INotifier".

Cmd Name
0 GetSystemEvent

IProfile

This is "nn::account::profile::IProfile".

Cmd Name
0 #Get
1 #GetBase
10 #GetImageSize
11 #LoadImage

Get

Takes an output type-0x1A buffer for #UserData, returns an output #ProfileBase.

GetBase

No input, returns an output #ProfileBase.

GetImageSize

No input, returns an output u32 for the size of the image buffer.

LoadImage

Takes an output type-0x6 buffer, returns the same output u32 as #GetImageSize.

The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.

IProfileEditor

This is "nn::account::profile::IProfileEditor".

Cmd Name
0 #Get
1 #GetBase
10 #GetImageSize
11 #LoadImage
100 #Store
101 #StoreWithImage

Store

Takes a #ProfileBase and an input type-0x19 buffer for #UserData.

StoreWithImage

Takes a #ProfileBase, an input type-0x19 buffer for #UserData, and an input type-0x5 buffer.

IAsyncContext

This is "nn::account::detail::IAsyncContext".

Cmd Name
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult

ISessionObject

This is "nn::account::detail::ISessionObject".

Cmd Name
999 Dummy

acc:u0

This is "nn::account::IAccountServiceForApplication".

This was moved to ns with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Takes an input userID, returns an #IProfile.
6 [3.0.0+] GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
60 [5.0.0-5.1.0] ListOpenContextStoredUsers
99 [6.0.0+] DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 #InitializeApplicationInfoV0
101 GetBaasAccountManagerForApplication Takes an input userID, returns an #IManagerForApplication.
102 AuthenticateApplicationAsync Returns an #IAsyncContext.
103 [4.0.0+] CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
120 CreateGuestLoginRequest Returns an #IGuestLoginRequest.
130 [5.0.0+] LoadOpenContext
131 [6.0.0+] ListOpenContextStoredUsers
140 [6.0.0+] #InitializeApplicationInfo
141 [6.0.0+] ListQualifiedUsers
150 [6.0.0+] IsUserAccountSwitchLocked

InitializeApplicationInfo* is used by the user-process during service init.

InitializeApplicationInfoV0

Takes a PID and an input u64 pid_placeholder, no output.

InitializeApplicationInfo

Takes a PID and an input u64 pid_placeholder, no output.

IGuestLoginRequest

This is "nn::account::baas::IGuestLoginRequest".

Cmd Name
0 GetSessionId
[1.0.0-2.3.0] 11
12 GetAccountId
13 GetLinkedNintendoAccountId
14 GetNickname
15 GetProfileImage
21 [3.0.0+] LoadIdTokenCache

IManagerForApplication

This is "nn::account::baas::IManagerForApplication".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache)
4 [19.0.0+] LoadIdTokenCache
130 GetNintendoAccountUserResourceCacheForApplication
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 [5.0.0+] StoreOpenContext
170 [6.0.0+] LoadNetworkServiceLicenseKindAsync No input, returns an #IAsyncNetworkServiceLicenseKindContext.

IAsyncNetworkServiceLicenseKindContext

This is "nn::account::detail::IAsyncNetworkServiceLicenseKindContext".

This was added with [6.0.0+].

Cmd Name Notes
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult
100 GetNetworkServiceLicenseKind

acc:u1

This is "nn::account::IAccountServiceForSystemService".

This was moved to ns with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Returns an #IProfile.
6 [3.0.0+] GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
60 [5.0.0-5.1.0] ListOpenContextStoredUsers
99 [6.0.0+] DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 GetUserRegistrationNotifier Returns an #INotifier.
101 GetUserStateChangeNotifier Returns an #INotifier.
102 GetBaasAccountManagerForSystemService Returns an #IManagerForSystemService.
103 GetBaasUserAvailabilityChangeNotifier Returns an #INotifier.
104 GetProfileUpdateNotifier Returns an #INotifier.
105 [4.0.0+] CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
106 [9.0.0+] GetProfileSyncNotifier
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
112 LoadSaveDataThumbnail
113 [5.0.0+] GetSaveDataThumbnailExistence
120 [10.0.0+] ListOpenUsersInApplication
130 [6.0.0+] ActivateOpenContextRetention Takes a total of 0x8-bytes of input, returns an #ISessionObject.
140 [6.0.0+] ListQualifiedUsers
150 [10.0.0-10.2.0] AuthenticateApplicationAsync
151 [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync
152 [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount
190 [1.0.0-9.2.0] GetUserLastOpenedApplication
191 [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder)
401 [18.0.0+] GetPinCodeLength
402 [18.0.0+] GetPinCode
997 [3.0.0+] DebugInvalidateTokenCacheForUser
998 DebugSetUserStateClose
999 DebugSetUserStateOpen

[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.

IOAuthProcedureForUserRegistration

This is "nn::account::nas::IOAuthProcedureForUserRegistration".

This was added with [8.0.0+].

Cmd Name Notes
0 PrepareAsync No input, returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Takes a type-0x9 input buffer, returns an #IAsyncContext.
10 Suspend
100 GetAccountId
101 GetLinkedNintendoAccountId
102 GetNickname
103 GetProfileImage
104 [18.0.0+] GetProfileLargeImage
110 RegisterUserAsync No input, returns an #IAsyncContext.
111 GetUid
200 [17.0.0+] ApplyResponseForUserCreationAsync
205 [17.0.0+] SuspendAfterApplyResponse
210 [17.0.0+] IsProfileAvailable
220 [17.0.0+] RegisterUserAsyncWithoutProfile
221 [17.0.0+] RegisterUserWithProfileAsync
230 [18.0.0+] RegisterUserWithLargeImageProfileAsync

acc:aa

This is "nn::account::IBaasAccessTokenAccessor".

Cmd Name Notes
0 EnsureCacheAsync Returns an #IAsyncContext.
1 LoadCache
2 GetDeviceAccountId
50 [1.0.0-6.2.0] RegisterNotificationTokenAsync Returns an #IAsyncContext.
51 [1.0.0-6.2.0] UnregisterNotificationTokenAsync Returns an #IAsyncContext.

dauth:0

This is "nn::dauth::detail::IService".

Cmd Name
0 EnsureAuthenticationTokenCacheAsync ([5.0.0-5.1.0] GeneratePostData)
1 [6.0.0+] LoadAuthenticationTokenCache
2 [6.0.0+] InvalidateAuthenticationTokenCache
3 [16.0.0+] IsDeviceAuthenticationTokenCacheAvailable
10 [6.0.0+] EnsureEdgeTokenCacheAsync
11 [6.0.0+] LoadEdgeTokenCache
12 [6.0.0+] InvalidateEdgeTokenCache
13 [16.0.0+] IsEdgeTokenCacheAvailable
20 [11.0.0+] EnsureApplicationAuthenticationCacheAsync
21 [11.0.0+] LoadApplicationAuthenticationTokenCache
22 [11.0.0+] LoadApplicationNetworkServiceClientConfigCache
23 [11.0.0+] IsApplicationAuthenticationCacheAvailable
24 [11.0.0+] InvalidateApplicationAuthenticationCache
1000 [15.0.0+] GetInactiveElicenseUsedEvent
9000 [15.0.0+] ImportVirtualClientCertificate
9010 [15.0.0+] DeleteVirtualClientCertificate

[10.0.0+] EnsureEdgeTokenCacheAsync now takes an additional 8-bytes of input.

IAsyncResult

This is "nn::dauth::detail::IAsyncResult".

This was added with [6.0.0+].

Cmd Name
0 GetResult
1 Cancel
2 IsAvailable
3 GetSystemEvent

acc:e

This is "nn::account::IAccountEntityServiceForAccountPolicy".

This was added with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Returns an #IProfile.
6 GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
99 DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 GetUserRegistrationNotifier Returns an #INotifier.
101 GetUserStateChangeNotifier Returns an #INotifier.
102 GetBaasAccountManagerForSystemService Returns an #IManagerForSystemService.
103 GetBaasUserAvailabilityChangeNotifier Returns an #INotifier.
104 GetProfileUpdateNotifier Returns an #INotifier.
105 CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
106 GetProfileSyncNotifier
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
112 LoadSaveDataThumbnail
113 GetSaveDataThumbnailExistence
120 ListOpenUsersInApplication
130 ActivateOpenContextRetention Takes a total of 0x8-bytes of input, returns an #ISessionObject.
140 ListQualifiedUsers
151 EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync
152 LoadSignedDeviceIdentifierCacheForNintendoAccount
170 GetNasOp2MembershipStateChangeNotifier
191 UpdateNotificationReceiverInfo
200 BeginUserRegistration
201 CompleteUserRegistration
202 CancelUserRegistration
203 DeleteUser
204 SetUserPosition
205 GetProfileEditor Takes an input userID and returns an #IProfileEditor.
206 CompleteUserRegistrationForcibly
210 CreateFloatingRegistrationRequest Returns an #IFloatingRegistrationRequest.
211 CreateProcedureToRegisterUserWithNintendoAccount Takes a total of 0x4-bytes of input and a handle, returns an #IOAuthProcedureForUserRegistration.
212 ResumeProcedureToRegisterUserWithNintendoAccount Takes a total of 0x14-bytes of input and a handle, returns an #IOAuthProcedureForUserRegistration.
213 [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount
214 [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount
215 [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse
230 AuthenticateServiceAsync Returns an #IAsyncContext.
250 GetBaasAccountAdministrator Returns an #IAdministrator.
290 ProxyProcedureForGuestLoginWithNintendoAccount Returns an #IOAuthProcedureForExternalNsa.
291 ProxyProcedureForFloatingRegistrationWithNintendoAccount Returns an #IOAuthProcedureForExternalNsa.
299 SuspendBackgroundDaemon Returns an #ISessionObject.
400 [18.0.0+] SetPinCode
401 [18.0.0+] GetPinCodeLength
402 [18.0.0+] GetPinCode
410 [18.0.0+] GetPinCodeErrorCount
411 [18.0.0+] ResetPinCodeErrorCount
412 [18.0.0+] IncrementPinCodeErrorCount
420 [19.0.0+] SetStartPenaltyTime
421 [19.0.0+] GetStartPenaltyTime
900 SetUserUnqualifiedForDebug
901 UnsetUserUnqualifiedForDebug
902 ListUsersUnqualifiedForDebug
910 [16.0.0+] RefreshFirmwareSettingsForDebug
997 DebugInvalidateTokenCacheForUser
998 DebugSetUserStateClose
999 DebugSetUserStateOpen
1000 CreateIAccountEntityServiceForApplication Returns an #IAccountEntityServiceForApplication.
1100 CreateIUserStateManager Returns an #IUserStateManager.
10050 IsUserRegistrationRequestPermittedForAccountPolicy
10105 CheckNetworkServiceAvailabilityAsyncForAccountPolicy

IProfile

This is "nn::account::profile::IProfile".

Cmd Name
0 #Get
1 #GetBase
10 #GetImageSize
11 #LoadImage
20 [18.0.0+] GetLargeImageSize
21 [18.0.0+] LoadLargeImage
30 [18.0.0+] GetImageId
40 [19.0.0+] GetStableUserId

Get

Takes an output type-0x1A buffer for #UserData, returns an output #ProfileBase.

GetBase

No input, returns an output #ProfileBase.

GetImageSize

No input, returns an output u32 for the size of the image buffer.

LoadImage

Takes an output type-0x6 buffer, returns the same output u32 as #GetImageSize.

The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.

IProfileEditor

This is "nn::account::profile::IProfileEditor".

Cmd Name
0 #Get
1 #GetBase
10 #GetImageSize
11 #LoadImage
20 [18.0.0+] GetLargeImageSize
21 [18.0.0+] LoadLargeImage
30 [18.0.0+] GetImageId
40 [19.0.0+] GetStableUserId
100 #Store
101 #StoreWithImage
110 [18.0.0+] StoreWithLargeImage

Store

Takes a #ProfileBase and an input type-0x19 buffer for #UserData.

StoreWithImage

Takes a #ProfileBase, an input type-0x19 buffer for #UserData, and an input type-0x5 buffer.

IAsyncContext

This is "nn::account::detail::IAsyncContext".

Cmd Name
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult

ISessionObject

This is "nn::account::detail::ISessionObject".

Cmd Name
999 Dummy

INotifier

This is "nn::account::detail::INotifier".

Cmd Name
0 GetSystemEvent

IManagerForSystemService

This is "nn::account::baas::IManagerForSystemService".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache)
4 [19.0.0+] LoadIdTokenCache
100 SetSystemProgramIdentification
101 RefreshNotificationTokenAsync
110 GetServiceEntryRequirementCacheForLogin
111 InvalidateServiceEntryRequirementCache
113 GetServiceEntryRequirementCacheForOnlinePlay Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
120 GetNintendoAccountId
121 CalculateNintendoAccountAuthenticationFingerprint
130 GetNintendoAccountUserResourceCache
131 RefreshNintendoAccountUserResourceCacheAsync Returns an #IAsyncContext.
132 RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
133 GetNintendoAccountVerificationUrlCache
134 RefreshNintendoAccountVerificationUrlCacheAsync
135 RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed
136 [19.0.0+] GetNintendoAccountUserResourceCache
140 GetNetworkServiceLicenseCache
141 RefreshNetworkServiceLicenseCacheAsync Returns an #IAsyncContext.
142 RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
143 [15.0.0+] GetNetworkServiceLicenseCacheEx
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache
161 [16.0.0+] RequireReauthenticationOfNetworkServiceAccount
180 [18.0.0+] GetRequestForNintendoAccountReauthentication

IFloatingRegistrationRequest

This is "nn::account::baas::IFloatingRegistrationRequest".

Cmd Name Notes
0 GetSessionId
12 GetAccountId
13 GetLinkedNintendoAccountId
14 GetNickname
15 GetProfileImage
16 [18.0.0+] GetProfileLargeImage
21 LoadIdTokenCache
100 RegisterUser
101 RegisterUserWithUid
102 RegisterNetworkServiceAccountAsync Returns an #IAsyncContext.
103 RegisterNetworkServiceAccountWithUidAsync Returns an #IAsyncContext.
110 SetSystemProgramIdentification
111 EnsureIdTokenCacheAsync Returns an #IAsyncContext.

IAdministrator

This is "nn::account::baas::IAdministrator".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 LoadIdTokenCache
100 SetSystemProgramIdentification
101 RefreshNotificationTokenAsync
110 GetServiceEntryRequirementCacheForLogin
111 InvalidateServiceEntryRequirementCache
113 GetServiceEntryRequirementCacheForOnlinePlay Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
120 GetNintendoAccountId
121 CalculateNintendoAccountAuthenticationFingerprint
130 GetNintendoAccountUserResourceCache
131 RefreshNintendoAccountUserResourceCacheAsync Returns an #IAsyncContext.
132 RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed Returns an #IAsyncContext.
133 GetNintendoAccountVerificationUrlCache
134 RefreshNintendoAccountVerificationUrlCacheAsync
135 RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed
140 GetNetworkServiceLicenseCache
141 RefreshNetworkServiceLicenseCacheAsync
142 RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache
161 [16.0.0+] RequireReauthenticationOfNetworkServiceAccount
170 [17.0.0+] CreateDeviceHistoryRequest
200 IsRegistered
201 RegisterAsync Returns an #IAsyncContext.
202 UnregisterAsync Returns an #IAsyncContext.
203 DeleteRegistrationInfoLocally
220 SynchronizeProfileAsync Returns an #IAsyncContext.
221 UploadProfileAsync Returns an #IAsyncContext.
222 SynchronizeProfileAsyncIfSecondsElapsed Returns an #IAsyncContext.
250 IsLinkedWithNintendoAccount
251 CreateProcedureToLinkWithNintendoAccount Returns an #IOAuthProcedureForNintendoAccountLinkage.
252 ResumeProcedureToLinkWithNintendoAccount Returns an #IOAuthProcedureForNintendoAccountLinkage.
255 CreateProcedureToUpdateLinkageStateOfNintendoAccount Returns an #IOAuthProcedure.
256 ResumeProcedureToUpdateLinkageStateOfNintendoAccount Returns an #IOAuthProcedure.
260 CreateProcedureToLinkNnidWithNintendoAccount Returns an #IOAuthProcedure.
261 ResumeProcedureToLinkNnidWithNintendoAccount Returns an #IOAuthProcedure.
280 ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount Returns an #IOAuthProcedure.
290 GetRequestForNintendoAccountUserResourceView
300 TryRecoverNintendoAccountUserStateAsync Returns an #IAsyncContext.
400 IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay Takes a total of 0x8-bytes of input, returns an output u8.
401 RefreshServiceEntryRequirementCacheForOnlinePlayAsync Takes a total of 0x8-bytes of input, returns an #IAsyncContext.
410 [13.1.0+] CheckRequiredLicenseForLexAsync
900 GetAuthenticationInfoForWin
901 ImportAsyncForWin
997 DebugUnlinkNintendoAccountAsync Returns an #IAsyncContext.
998 DebugSetAvailabilityErrorDetail

IAuthorizationRequest

This is "nn::account::nas::IAuthorizationRequest".

Cmd Name Notes
0 GetSessionId
10 InvokeWithoutInteractionAsync Returns an #IAsyncContext.
19 IsAuthorized
20 GetAuthorizationCode
21 GetIdToken
22 GetState

IOAuthProcedure

This is "nn::account::http::IOAuthProcedure".

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend

IOAuthProcedureForExternalNsa

This is "nn::account::nas::IOAuthProcedureForExternalNsa".

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend
100 GetAccountId
101 GetLinkedNintendoAccountId
102 GetNickname
103 GetProfileImage

IOAuthProcedureForNintendoAccountLinkage

This is "nn::account::nas::IOAuthProcedureForNintendoAccountLinkage".

Cmd Name Notes
0 PrepareAsync Returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Returns an #IAsyncContext.
10 Suspend
100 GetRequestWithTheme
101 IsNetworkServiceAccountReplaced
200 [16.0.0+] ApplyAsyncWithAuthorizedToken

IOAuthProcedureForUserRegistration

This is "nn::account::nas::IOAuthProcedureForUserRegistration".

Cmd Name Notes
0 PrepareAsync No input, returns an #IAsyncContext.
1 GetRequest
2 ApplyResponse
3 ApplyResponseAsync Takes a type-0x9 input buffer, returns an #IAsyncContext.
10 Suspend
100 GetAccountId
101 GetLinkedNintendoAccountId
102 GetNickname
103 GetProfileImage
110 RegisterUserAsync No input, returns an #IAsyncContext.
111 GetUid

IAccountEntityServiceForApplication

This is "nn::account::IAccountEntityServiceForApplication".

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Takes an input userID, returns an #IProfile.
6 GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
99 DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 #InitializeApplicationInfoV0
101 GetBaasAccountManagerForApplication Takes an input userID, returns an #IManagerForApplication.
102 AuthenticateApplicationAsync Returns an #IAsyncContext.
103 CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
120 CreateGuestLoginRequest Returns an #IGuestLoginRequest.
130 LoadOpenContext
131 ListOpenContextStoredUsers
140 #InitializeApplicationInfoV1
141 ListQualifiedUsers
150 IsUserAccountSwitchLocked
160 InitializeApplicationInfoV2
10050 IsUserRegistrationRequestPermittedForAccountPolicy
10100 InitializeApplicationInfoV0ForAccountPolicy
10140 InitializeApplicationInfoV1ForAccountPolicy
10160 InitializeApplicationInfoV2ForAccountPolicy

InitializeApplicationInfo* is used by the user-process during service init.

IsUserRegistrationRequestPermitted

Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.

TrySelectUserWithoutInteraction

Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.

InitializeApplicationInfoV0

Takes a PID and an input u64 pid_placeholder, no output.

InitializeApplicationInfoV1

Takes a PID and an input u64 pid_placeholder, no output.

IGuestLoginRequest

This is "nn::account::baas::IGuestLoginRequest".

Cmd Name
0 GetSessionId
12 GetAccountId
13 GetLinkedNintendoAccountId
14 GetNickname
15 GetProfileImage
16 [18.0.0+] GetProfileLargeImage
21 LoadIdTokenCache

IManagerForApplication

This is "nn::account::baas::IManagerForApplication".

Cmd Name Notes
0 CheckAvailability
1 GetAccountId
2 EnsureIdTokenCacheAsync Returns an #IAsyncContext.
3 LoadIdTokenCache
130 GetNintendoAccountUserResourceCacheForApplication
150 CreateAuthorizationRequest Returns an #IAuthorizationRequest.
160 StoreOpenContext
170 EnsureIdTokenCacheForOnlinePlayAsync No input, returns an #IAsyncContextForLoginForOnlinePlay.

IAsyncContextForLoginForOnlinePlay

This is "nn::account::baas::IAsyncContextForLoginForOnlinePlay".

Cmd Name Notes
0 GetSystemEvent
1 Cancel
2 HasDone
3 GetResult
100 GetNetworkServiceLicenseInfoForOnlinePlay

IUserStateManager

This is "nn::account::detail::IUserStateManager".

Cmd Name
100 EnableQualificationLimitation
101 DisableQualificationLimitation
110 SelectQualifiedUsers
900 [14.0.0+] SetUserUnqualifiedForDebug
901 [14.0.0+] UnsetUserUnqualifiedForDebug
902 [14.0.0+] ListUsersUnqualifiedForDebug

acc:e:u1

This is "nn::account::IAccountServiceForSystemService".

This was added with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Returns an #IProfile.
6 GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
99 DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 GetUserRegistrationNotifier Returns an #INotifier.
101 GetUserStateChangeNotifier Returns an #INotifier.
102 GetBaasAccountManagerForSystemService Returns an #IManagerForSystemService.
103 GetBaasUserAvailabilityChangeNotifier Returns an #INotifier.
104 GetProfileUpdateNotifier Returns an #INotifier.
105 CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
106 GetProfileSyncNotifier
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
112 LoadSaveDataThumbnail
113 GetSaveDataThumbnailExistence
120 ListOpenUsersInApplication
130 ActivateOpenContextRetention Takes a total of 0x8-bytes of input, returns an #ISessionObject.
140 ListQualifiedUsers
151 EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync
152 LoadSignedDeviceIdentifierCacheForNintendoAccount
170 GetNasOp2MembershipStateChangeNotifier
191 UpdateNotificationReceiverInfo
997 DebugInvalidateTokenCacheForUser
998 DebugSetUserStateClose
999 DebugSetUserStateOpen

acc:e:u2

This is "nn::account::IAccountServiceForSystemServiceWithProfileEditor".

This was added with [13.0.0+].

Cmd Name Notes
0 GetUserCount
1 GetUserExistence
2 ListAllUsers
3 ListOpenUsers
4 GetLastOpenedUser
5 GetProfile Returns an #IProfile.
6 GetProfileDigest
50 #IsUserRegistrationRequestPermitted
51 TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] #TrySelectUserWithoutInteraction)
52 [19.0.0+] TrySelectUserWithoutInteraction
99 DebugActivateOpenContextRetention No input, returns an #ISessionObject.
100 GetUserRegistrationNotifier Returns an #INotifier.
101 GetUserStateChangeNotifier Returns an #INotifier.
102 GetBaasAccountManagerForSystemService Returns an #IManagerForSystemService.
103 GetBaasUserAvailabilityChangeNotifier Returns an #INotifier.
104 GetProfileUpdateNotifier Returns an #INotifier.
105 CheckNetworkServiceAvailabilityAsync Returns an #IAsyncContext.
106 GetProfileSyncNotifier
110 StoreSaveDataThumbnail
111 ClearSaveDataThumbnail
112 LoadSaveDataThumbnail
113 GetSaveDataThumbnailExistence
120 ListOpenUsersInApplication
130 ActivateOpenContextRetention Takes a total of 0x8-bytes of input, returns an #ISessionObject.
140 ListQualifiedUsers
151 EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync
152 LoadSignedDeviceIdentifierCacheForNintendoAccount
170 GetNasOp2MembershipStateChangeNotifier
191 UpdateNotificationReceiverInfo
205 GetProfileEditor Takes an input userID and returns an #IProfileEditor.
401 [18.0.0+] GetPinCodeLength
402 [18.0.0+] GetPinCode
997 DebugInvalidateTokenCacheForUser
998 DebugSetUserStateClose
999 DebugSetUserStateOpen

UserData

Offset Size Description
0x0 0x4? ?
0x4 0x4? Icon ID. 0 = Mii, the rest are character icon IDs.
0x8 0x1? Profile icon background color ID
0x9 0x7 ?
0x10 0x10 Some ID related to the Mii? All zeros when a character icon is used.
0x20 0x60 Usually zeros?

This is a 0x80-byte struct.

ProfileBase

Offset Size Description
0x0 0x10 userID
0x10 0x8 POSIX UTC timestamp, for last account edit.
0x18 0x20 UTF-8 Nickname. Official sw uses strncpy to copy this into another struct (nn::account::Nickname), with a NUL-byte written after the copied data.

This is a 0x38-byte struct.

Uid

This is "nn::account::Uid". This is a 0x10-byte struct. This contains 2 u64s for the UserId.