Glue services: Difference between revisions

No edit summary
Line 6: Line 6:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#GetApplicationLaunchProperty]]
| 0 || [[#GetApplicationLaunchProperty|GetApplicationLaunchProperty]]
|-
|-
| 1 || [10.0.0+] [[#GetApplicationControlProperty]] ([1.0.0-9.2.0] [[#GetApplicationLaunchPropertyWithApplicationId]])
| 1 || [10.0.0+] [[#GetApplicationControlProperty|GetApplicationControlProperty]] ([1.0.0-9.2.0] [[#GetApplicationLaunchPropertyWithApplicationId|GetApplicationLaunchPropertyWithApplicationId]])
|-
|-
| 2 || [10.0.0+] GetApplicationProcessProperty ([1.0.0-9.2.0] [[#GetApplicationControlProperty]])
| 2 || [10.0.0+] [[#GetApplicationProcessProperty|GetApplicationProcessProperty]] ([1.0.0-9.2.0] [[#GetApplicationControlProperty|GetApplicationControlProperty]])
|-
|-
| 3 || [10.0.0+] GetApplicationInstanceId ([1.0.0-9.2.0] [[#GetApplicationControlPropertyWithApplicationId]])
| 3 || [10.0.0+] [[#GetApplicationInstanceId|GetApplicationInstanceId]] ([1.0.0-9.2.0] [[#GetApplicationControlPropertyWithApplicationId|GetApplicationControlPropertyWithApplicationId]])
|-
|-
| 4 || [10.0.0+] [[#GetApplicationInstanceUnregistrationNotifier]]
| 4 || [10.0.0+] [[#GetApplicationInstanceUnregistrationNotifier|GetApplicationInstanceUnregistrationNotifier]]
|-
|-
| 5 || [10.0.0+] ListApplicationInstanceId
| 5 || [10.0.0+] [[#ListApplicationInstanceId|ListApplicationInstanceId]]
|-
|-
| 6 || [10.0.0+] GetMicroApplicationInstanceId
| 6 || [10.0.0+] [[#GetMicroApplicationInstanceId|GetMicroApplicationInstanceId]]
|-
|-
| 7 || [10.0.0+] GetApplicationCertificate
| 7 || [10.0.0+] [[#GetApplicationCertificate|GetApplicationCertificate]]
|-
|-
| 9998 || [9.0.0-9.2.0] GetPreomiaApplicationLaunchProperty
| 9998 || [9.0.0-9.2.0] [[#GetPreomiaApplicationLaunchProperty|GetPreomiaApplicationLaunchProperty]]
|-
|-
| 9999 || [9.0.0-9.2.0] GetPreomiaApplicationControlProperty
| 9999 || [9.0.0-9.2.0] [[#GetPreomiaApplicationControlProperty|GetPreomiaApplicationControlProperty]]
|}
|}


== GetApplicationLaunchProperty ==
== GetApplicationLaunchProperty ==
Takes an input u64 ProcessId (1.0.0-9.2.0) or u64 ApplicationInstanceId (10.0.0+), returns an [[#ApplicationLaunchProperty]].
Takes an input u64 ProcessId. Returns an [[#ApplicationLaunchProperty]].
 
[10.0.0+] Now takes an input [[#ApplicationInstanceId]] instead of ProcessId.


== GetApplicationLaunchPropertyWithApplicationId ==
== GetApplicationLaunchPropertyWithApplicationId ==
Takes an input u64 ApplicationId, returns an [[#ApplicationLaunchProperty]].
Takes an input u64 ApplicationId. Returns an [[#ApplicationLaunchProperty]].


== GetApplicationControlProperty ==
== GetApplicationControlProperty ==
Takes an input u64 ProcessId (1.0.0-9.2.0) or u64 ApplicationInstanceId (10.0.0+), returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]
Takes an input u64 ProcessId and a type-0x16 output buffer containing an [[NACP|ApplicationControlProperty]]. No output.
 
[10.0.0+] Now takes an input [[#ApplicationInstanceId]] instead of ProcessId.


== GetApplicationControlPropertyWithApplicationId ==
== GetApplicationControlPropertyWithApplicationId ==
Takes an input u64 ApplicationId, returns a type-0x16 buffer filled with the contents of [[NACP_Format|control.nacp]]
Takes an input u64 ApplicationId and a type-0x16 output buffer containing an [[NACP|ApplicationControlProperty]]. No output.
 
== GetApplicationProcessProperty ==
Takes an input [[#ApplicationInstanceId]]. Returns an [[#ApplicationProcessProperty]].
 
== GetApplicationInstanceId ==
Takes an input u64 ProcessId. Returns an [[#ApplicationInstanceId]].


== GetApplicationInstanceUnregistrationNotifier ==
== GetApplicationInstanceUnregistrationNotifier ==
Returns an [[#IUnregistrationNotifier]].
No input. Returns an [[#IUnregistrationNotifier]].
 
== ListApplicationInstanceId ==
Takes a type-0x6 output buffer containing an array of [[#ApplicationInstanceId]]. Returns an s32 '''Count'''.
 
== GetMicroApplicationInstanceId ==
Same as [[#GetApplicationInstanceId]].
 
== GetApplicationCertificate ==
Takes an input [[#ApplicationInstanceId]] and a type-0x16 output buffer containing an [[#ApplicationCertificate]]. No output.
 
== GetPreomiaApplicationLaunchProperty ==
Same as [[#GetApplicationLaunchProperty]].
 
== GetPreomiaApplicationControlProperty ==
Same as [[#GetApplicationControlProperty]].


== IUnregistrationNotifier ==
== IUnregistrationNotifier ==
Line 49: Line 74:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetReadableHandle
| 0 || [[#GetReadableHandle|GetReadableHandle]]
|}
|}
=== GetReadableHandle ===
No input. Returns an output readable Event handle.


= arp:w =
= arp:w =
Line 59: Line 87:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#AcquireRegistrar]]
| 0 || [[#AcquireRegistrar|AcquireRegistrar]]
|-
|-
| 1 || [10.0.0+] UnregisterApplicationInstance ([1.0.0-9.2.0] DeleteProperties)
| 1 || [10.0.0+] [[#UnregisterApplicationInstance|UnregisterApplicationInstance]] ([1.0.0-9.2.0] DeleteProperties)
|-
|-
| 2 || [10.0.0+] [[#AcquireUpdater]]
| 2 || [10.0.0+] [[#AcquireUpdater|AcquireUpdater]]
|}
|}


== AcquireRegistrar ==
== AcquireRegistrar ==
Returns an [[#IRegistrar]].
No input. Returns an [[#IRegistrar]].
 
== UnregisterApplicationInstance ==
Takes an input [[#ApplicationInstanceId]]. No output.


== AcquireUpdater ==
== AcquireUpdater ==
Returns an [[#IUpdater]].
Takes an input [[#ApplicationInstanceId]]. Returns an [[#IUpdater]].


== IRegistrar ==
== IRegistrar ==
Line 79: Line 110:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#Issue]]
| 0 || [[#Issue|Issue]]
|-
|-
| 1 || [[#SetApplicationLaunchProperty]]
| 1 || [[#SetApplicationLaunchProperty|SetApplicationLaunchProperty]]
|-
|-
| 2 || [[#SetApplicationControlProperty]]
| 2 || [[#SetApplicationControlProperty|SetApplicationControlProperty]]
|}
|}


=== Issue ===
=== Issue ===
Takes an input u64.
No input. Returns an output [[#ApplicationInstanceId]].


=== SetApplicationLaunchProperty ===
=== SetApplicationLaunchProperty ===
Takes an input [[#ApplicationLaunchProperty]].
Takes an input [[#ApplicationLaunchProperty]]. No output.


=== SetApplicationControlProperty ===
=== SetApplicationControlProperty ===
Takes an input type-0x15 buffer filled with the contents of [[NACP_Format|control.nacp]].
Takes a type-0x15 input buffer containing an [[NACP|ApplicationControlProperty]]. No output.


== IUpdater ==
== IUpdater ==
Line 102: Line 133:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || Issue
| 0 || [[#Issue_2|Issue]]
|-
|-
| 1 || SetApplicationProcessProperty
| 1 || [[#SetApplicationProcessProperty|SetApplicationProcessProperty]]
|-
|-
| 2 || DeleteApplicationProcessProperty
| 2 || [[#DeleteApplicationProcessProperty|DeleteApplicationProcessProperty]]
|-
|-
| 3 || SetApplicationCertificate
| 3 || [[#SetApplicationCertificate|SetApplicationCertificate]]
|}
|}
=== Issue ===
No input/output.
=== SetApplicationProcessProperty ===
Takes an input u64 ProcessId and an input [[#ApplicationProcessProperty]]. No output.
=== DeleteApplicationProcessProperty ===
No input/output.
=== SetApplicationCertificate ===
Takes a type-0x15 input buffer containing an [[#ApplicationCertificate]]. No output.


= bgtc:t =
= bgtc:t =
Line 674: Line 717:
|-
|-
| 1 || CommitContext
| 1 || CommitContext
|}
= ApplicationInstanceId =
This is "nn::arp::ApplicationInstanceId".
This is an u64 ID bound to an application instance.
= ApplicationKind =
This is "nn::arp::ApplicationKind".
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Application
|-
| 1 || MicroApplication
|}
|}


= ApplicationLaunchProperty =
= ApplicationLaunchProperty =
Total size is 0x10 bytes.
This is "nn::arp::ApplicationLaunchProperty".
 
This is a 0x10-byte struct.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 687: Line 750:
| 0x00
| 0x00
| 0x08
| 0x08
| Title ID
| [[NCM_services#ProgramId|Id]]
|-
|-
| 0x08
| 0x08
Line 695: Line 758:
| 0x0C
| 0x0C
| 0x01
| 0x01
| Base Game [[Filesystem_services#StorageId|Storage Id]]
| [[Filesystem_services#StorageId|Storage]]
|-
|-
| 0x0D
| 0x0D
| 0x01
| 0x01
| Update [[Filesystem_services#StorageId|Storage Id]]
| [[Filesystem_services#StorageId|PatchStorage]]
|-
|-
| 0x0E
| 0x0E
| 0x02
| 0x01
| Padding
| [[#ApplicationKind|Kind]]
|-
| 0x0F
| 0x01
| Reserved
|}
|}
= ApplicationProcessProperty =
This is "nn::arp::ApplicationProcessProperty".
This is a 0x1-byte struct.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x00
| 0x01
| ProgramIndex
|}
= ApplicationCertificate =
This is "nn::arp::ApplicationCertificate".
This is a 0x528-byte struct.


= AlarmSettingId =
= AlarmSettingId =