Line 18: |
Line 18: |
| | 5 || GetProfile || Returns an [[#IProfile]]. | | | 5 || GetProfile || Returns an [[#IProfile]]. |
| |- | | |- |
− | | 6 || GetProfileDigest || | + | | 6 || [3.0.0+] GetProfileDigest || |
| |- | | |- |
− | | 50 || IsUserRegistrationRequestPermitted || | + | | 50 || [[#IsUserRegistrationRequestPermitted]] || |
| |- | | |- |
− | | 51 || TrySelectUserWithoutInteraction || | + | | 51 || [[#TrySelectUserWithoutInteraction]] || |
| |- | | |- |
| | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || | | | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || |
Line 39: |
Line 39: |
| |- | | |- |
| | 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 46: |
Line 48: |
| | 112 || LoadSaveDataThumbnail || | | | 112 || LoadSaveDataThumbnail || |
| |- | | |- |
− | | 113 || GetSaveDataThumbnailExistence || | + | | 113 || [5.0.0+] GetSaveDataThumbnailExistence || |
| |- | | |- |
| | 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]]. | | | 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]]. |
Line 70: |
Line 72: |
| | 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]]. | | | 211 || [8.0.0+] CreateProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x4-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]]. |
Line 80: |
Line 82: |
| | 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 || | + | | 997 || [3.0.0+] DebugInvalidateTokenCacheForUser || |
| |- | | |- |
| | 998 || DebugSetUserStateClose || | | | 998 || DebugSetUserStateClose || |
Line 92: |
Line 94: |
| | 999 || DebugSetUserStateOpen || | | | 999 || DebugSetUserStateOpen || |
| |} | | |} |
| + | |
| + | == 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 121: |
Line 129: |
| |- | | |- |
| | 120 || GetNintendoAccountId || | | | 120 || GetNintendoAccountId || |
| + | |- |
| + | | 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint || |
| |- | | |- |
| | 130 || GetNintendoAccountUserResourceCache || | | | 130 || GetNintendoAccountUserResourceCache || |
Line 127: |
Line 137: |
| |- | | |- |
| | 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 139: |
Line 155: |
| == 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 197: |
Line 215: |
| |- | | |- |
| | 120 || GetNintendoAccountId || | | | 120 || GetNintendoAccountId || |
| + | |- |
| + | | 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint || |
| |- | | |- |
| | 130 || GetNintendoAccountUserResourceCache || | | | 130 || GetNintendoAccountUserResourceCache || |
Line 203: |
Line 223: |
| |- | | |- |
| | 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 236: |
Line 262: |
| | 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]]. |
Line 249: |
Line 275: |
| |- | | |- |
| | 401 || [6.1.0+] RefreshServiceEntryRequirementCacheForOnlinePlayAsync || Takes a total of 0x8-bytes of input, returns an [[#IAsyncContext]]. | | | 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 295: |
Line 325: |
| == 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 340: |
Line 372: |
| | 101 || IsNetworkServiceAccountReplaced || | | | 101 || IsNetworkServiceAccountReplaced || |
| |- | | |- |
− | | [?-5.1.0] 199 || GetUrlForIntroductionOfExtraMembership || | + | | [2.0.0-5.1.0] 199 || GetUrlForIntroductionOfExtraMembership || |
| |} | | |} |
| | | |
Line 454: |
Line 486: |
| | 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 || | + | | 50 || [[#IsUserRegistrationRequestPermitted]] || |
| |- | | |- |
− | | 51 || TrySelectUserWithoutInteraction || | + | | 51 || [[#TrySelectUserWithoutInteraction]] || |
| |- | | |- |
| | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || | | | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || |
Line 464: |
Line 496: |
| | 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]]. | | | 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 482: |
Line 514: |
| | 131 || [6.0.0+] ListOpenContextStoredUsers || | | | 131 || [6.0.0+] ListOpenContextStoredUsers || |
| |- | | |- |
− | | 140 || [6.0.0+] InitializeApplicationInfo || | + | | 140 || [6.0.0+] [[#InitializeApplicationInfo]] || |
| |- | | |- |
| | 141 || [6.0.0+] ListQualifiedUsers || | | | 141 || [6.0.0+] ListQualifiedUsers || |
Line 488: |
Line 520: |
| | 150 || [6.0.0+] IsUserAccountSwitchLocked || | | | 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 497: |
Line 537: |
| |- | | |- |
| | 0 || GetSessionId | | | 0 || GetSessionId |
| + | |- |
| + | | [1.0.0-2.3.0] 11 || |
| |- | | |- |
| | 12 || GetAccountId | | | 12 || GetAccountId |
Line 506: |
Line 548: |
| | 15 || GetProfileImage | | | 15 || GetProfileImage |
| |- | | |- |
− | | 21 || LoadIdTokenCache | + | | 21 || [3.0.0+] LoadIdTokenCache |
| |} | | |} |
| | | |
Line 572: |
Line 614: |
| | 5 || GetProfile || Returns an [[#IProfile]]. | | | 5 || GetProfile || Returns an [[#IProfile]]. |
| |- | | |- |
− | | 6 || GetProfileDigest || | + | | 6 || [3.0.0+] GetProfileDigest || |
| |- | | |- |
− | | 50 || IsUserRegistrationRequestPermitted || | + | | 50 || [[#IsUserRegistrationRequestPermitted]] || |
| |- | | |- |
− | | 51 || TrySelectUserWithoutInteraction || | + | | 51 || [[#TrySelectUserWithoutInteraction]] || |
| |- | | |- |
| | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || | | | 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers || |
Line 593: |
Line 635: |
| |- | | |- |
| | 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 610: |
Line 654: |
| | 191 || [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) || | | | 191 || [7.0.0+] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) || |
| |- | | |- |
− | | 997 || DebugInvalidateTokenCacheForUser || | + | | 997 || [3.0.0+] DebugInvalidateTokenCacheForUser || |
| |- | | |- |
| | 998 || DebugSetUserStateClose || | | | 998 || DebugSetUserStateClose || |
Line 662: |
Line 706: |
| | 2 || GetDeviceAccountId || | | | 2 || GetDeviceAccountId || |
| |- | | |- |
− | | [1.0.0-6.2.0] 50 || RegisterNotificationTokenAsync || Returns an [[#IAsyncContext]]. | + | | 50 || [1.0.0-6.2.0] RegisterNotificationTokenAsync || Returns an [[#IAsyncContext]]. |
| |- | | |- |
− | | [1.0.0-6.2.0] 51 || UnregisterNotificationTokenAsync || Returns an [[#IAsyncContext]]. | + | | 51 || [1.0.0-6.2.0] UnregisterNotificationTokenAsync || Returns an [[#IAsyncContext]]. |
| |} | | |} |
| | | |
Line 674: |
Line 718: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || ? ([5.0.0-5.1.0] ?) | + | | 0 || EnsureAuthenticationTokenCacheAsync ([5.0.0-5.1.0] GeneratePostData) |
| |- | | |- |
− | | 1 || [6.0.0+] | + | | 1 || [6.0.0+] LoadAuthenticationTokenCache |
| |- | | |- |
− | | 2 || [6.0.0+] | + | | 2 || [6.0.0+] InvalidateAuthenticationTokenCache |
| |- | | |- |
− | | 10 || [6.0.0+] | + | | 10 || [6.0.0+] EnsureEdgeTokenCacheAsync |
| |- | | |- |
− | | 11 || [6.0.0+] | + | | 11 || [6.0.0+] LoadEdgeTokenCache |
| |- | | |- |
− | | 12 || [6.0.0+] | + | | 12 || [6.0.0+] InvalidateEdgeTokenCache |
| |} | | |} |
| | | |
Line 696: |
Line 740: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || GetResult |
| |- | | |- |
− | | 1 || | + | | 1 || Cancel |
| |- | | |- |
− | | 2 || | + | | 2 || IsAvailable |
| |- | | |- |
− | | 3 || | + | | 3 || GetSystemEvent |
| |} | | |} |
| | | |
Line 734: |
Line 778: |
| | 0x10 || 0x8 || POSIX UTC timestamp, for last account edit. | | | 0x10 || 0x8 || POSIX UTC timestamp, for last account edit. |
| |- | | |- |
− | | 0x18 || 0x20 || UTF-8 Username | + | | 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. |
| |- | | |- |
| |} | | |} |