NS services: Difference between revisions

No edit summary
Line 1,274: Line 1,274:


==== GetApplicationRightsOnClient ====
==== GetApplicationRightsOnClient ====
Takes a type-0x6 output buffer containing an array of {0x20-bytes struct}, an input u32 flags, an [[NCM_services#ApplicationId|ApplicationId]], an [[Account_services#Uid|Uid]], returns 4-bytes of output for total output entries.
Takes a type-0x6 output buffer containing an array of [[#ApplicationRightsOnClient]], an input u32 flags, an [[NCM_services#ApplicationId|ApplicationId]], an [[Account_services#Uid|Uid]], returns 4-bytes of output for total output entries.


Official sw has at least two wrappers which use this cmd: one with an all-zero Uid, one with an user-specified Uid. With both of these, the passed flags are hard-coded to value 0x3.
Official sw has at least two wrappers which use this cmd: one with an all-zero Uid, one with an user-specified Uid. With both of these, the passed flags are hard-coded to value 0x3.
[[qlaunch]] only uses +0x18/+0x19 in the array struct, which are flags. +0x18: bit0-bit4 and bit7. +0x19: bit0.


For the output array count, [[qlaunch]] uses value 3.
For the output array count, [[qlaunch]] uses value 3.
Line 2,193: Line 2,191:
= SendApplicationProgress =
= SendApplicationProgress =
This is "nn::ns::SendApplicationProgress". This is a 0x10-byte struct.
This is "nn::ns::SendApplicationProgress". This is a 0x10-byte struct.
= ApplicationRightsOnClient =
This is a 0x20-byte struct.
[[qlaunch]] only uses +0x18/+0x19 in this struct.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]]
|-
| 0x8 || 0x10 || [[Account_services#Uid|Uid]]
|-
| 0x18 || 0x1 || Flags, [[qlaunch]] only uses bit0-bit4 and bit7.
|-
| 0x19 || 0x1 || Flags, [[qlaunch]] only uses bit0.
|-
| 0x1A || 0x6 || Unknown
|}


[[Category:Services]]
[[Category:Services]]