Services API
Services are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via inter-process communication (each service has a name up to 8 characters).
Handles for services are retrieved from the service manager port, "sm:", and are released via svcCloseHandle or when a process is terminated or crashes. Manager service "sm:m" also exists. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC. Services are also able to limit the number of handles given to other processes.
sm:
This is "nn::sm::detail::IUserInterface".
| Cmd | Name |
|---|---|
| 0 | #RegisterClient |
| 1 | #GetServiceHandle |
| 2 | #RegisterService |
| 3 | #UnregisterService |
| 4 | [11.0.0-11.0.1] #DetachClient |
RegisterClient
Takes a PID-descriptor and a reserved input u64.
GetServiceHandle
Takes a zero-padded service name encoded as an u64 integer. Returns a handle.
RegisterService
Takes a zero-padded service name encoded as an u64 integer, an u8 bool IsLight, and a s32 MaxSessions at the next word. Returns a handle.
[12.0.0+] This is only available with tipc.
UnregisterService
Takes a zero-padded service name encoded as an u64 integer.
[12.0.0+] This is only available with tipc.
DetachClient
Takes a PID-descriptor and a reserved input u64.
sm:m
This is "nn::sm::detail::IManagerInterface".
| Cmd | Name |
|---|---|
| 0 | #RegisterProcess |
| 1 | #UnregisterProcess |
RegisterProcess
Takes a PID and two type-0x5 input buffers with the ACID and ACI0 service lists. That data originates from NPDM.
UnregisterProcess
Takes a PID.
Service List
| Service Name | S1 | S2 | Hosted by | Notes |
|---|---|---|---|---|
| [1.0.0-12.1.0] acc:u0 | Yes | Yes | Account services | |
| [1.0.0-12.1.0] acc:u1 | Yes | Account services | ||
| acc:aa | Yes | Account services | ||
| acc:su | Yes | Account services | ||
| [5.0.0+] dauth:0 | Yes | Account services | ||
| [13.0.0+] acc:e | Yes | Account services | ||
| [13.0.0+] acc:e:u1 | Yes | Account services | ||
| [13.0.0+] acc:e:u2 | Yes | Account services | ||
| [1.0.0-8.1.0] ahid:cd | Yes | HID services | ||
| [1.0.0-8.1.0] ahid:hdr | Yes | HID services | ||
| hid | Yes | Yes | HID services | |
| hid:dbg | Yes | HID services | ||
| hid:sys | Yes | HID services | ||
| irs | Yes | Yes | HID services | |
| irs:sys | Yes | HID services | ||
| xcd:sys | Yes | HID services | ||
| [3.0.0-7.0.1] hid:tmp | Yes | HID services | ||
| [5.0.0+] hidbus | Yes | HID services | ||
| appletAE | Yes | Applet Manager services | ||
| appletOE | Yes | Yes | Applet Manager services | |
| [1.0.0-13.2.1] idle:sys | Yes | Applet Manager services | ||
| [1.0.0-13.2.1] omm | Yes | Applet Manager services | ||
| [1.0.0-13.2.1] spsm | Yes | Applet Manager services | ||
| [5.0.0-10.2.0] tcap | Yes | Applet Manager services | ||
| [6.0.0+] caps:su | Yes | Yes | Applet Manager services | |
| [8.0.0+] apm | Yes | Yes | Applet Manager services | |
| [1.0.0-2.3.0] aoc:u | Yes | Yes | NS Services | |
| mii:u | Yes | Yes | NS Services | |
| mii:e | Yes | NS Services | ||
| ns:am | Yes | NS Services | ||
| ns:su | Yes | NS Services | ||
| ns:dev | Yes | NS Services | ||
| pl:u | Yes | Yes | NS Services | |
| ovln:rcv | Yes | NS Services | ||
| ovln:snd | Yes | NS Services | ||
| pdm:ntfy | Yes | NS Services | ||
| pdm:qry | Yes | NS Services | ||
| [3.0.0+] aoc:u | Yes | Yes | NS Services | |
| ns:am2 | Yes | NS Services | ||
| ns:dev | Yes | NS Services | ||
| ns:ec | Yes | NS Services | ||
| ns:rid | Yes | NS Services | ||
| ns:rt | Yes | NS Services | ||
| ns:su | Yes | NS Services | ||
| ns:vm | Yes | NS Services | ||
| ns:web | Yes | NS Services | ||
| [1.0.0-7.0.1] ovln:rcv | Yes | NS Services | ||
| [1.0.0-7.0.1] ovln:snd | Yes | NS Services | ||
| [11.0.0+] ns:ro | Yes | NS Services | ||
| [13.0.0+] acc:su | Yes | NS Services | ||
| [13.0.0+] acc:u0 | Yes | Yes | NS Services | |
| [13.0.0+] acc:u1 | Yes | NS Services | ||
| [15.0.0+] ns:sweb | Yes | NS Services | ||
| [1.0.0-8.1.0] apm:dbg | Yes | PPC services | ||
| [1.0.0-8.1.0] apm:sys | Yes | PPC services | ||
| [1.0.0] fgm:1 | Yes | PPC services | ||
| fgm:2 | Yes | PPC services | ||
| fgm:3 | Yes | PPC services | ||
| fgm:4 | Yes | PPC services | ||
| fgm:5 | Yes | PPC services | ||
| fgm:6 | Yes | PPC services | ||
| fgm:7 | Yes | PPC services | ||
| [1.0.0-8.1.0] fgm | Yes | PPC services | ||
| [1.0.0-8.1.0] fgm:0 | Yes | PPC services | ||
| [1.0.0-8.1.0] fgm:9 | Yes | PPC services | ||
| [1.0.0-8.1.0] fgm:dbg | Yes | PPC services | ||
| [1.0.0-7.0.1] apm | Yes | Yes | PPC services | |
| [1.0.0-7.0.1] apm:p | Yes | PPC services | ||
| [8.0.0-8.1.0] apm:am | Yes | PPC services | ||
| arp:r | Yes | Glue services | ||
| arp:w | Yes | Glue services | ||
| [2.0.0+] bgtc:t | Yes | Glue services | ||
| [2.0.0+] bgtc:sc | Yes | Glue services | ||
| [9.0.0+] time:a | Yes | Glue services | ||
| [9.0.0+] time:r | Yes | Glue services | ||
| [9.0.0+] time:u | Yes | Yes | Glue services | |
| [9.0.0+] notif:a | Yes | Yes | Glue services | |
| [9.0.0+] notif:s | Yes | Glue services | ||
| [11.0.0+] ectx:aw | Yes | Glue services | ||
| [11.0.0+] ectx:r | Yes | Glue services | ||
| [11.0.0+] ectx:w | Yes | Glue services | ||
| [16.0.0+] pl:u | Yes | Yes | Glue services | |
| [1.0.0-10.2.0] audin:a | Yes | Audio services | ||
| [1.0.0-10.2.0] audin:d | Yes | Audio services | ||
| audin:u | Yes | Yes | Audio services | |
| [1.0.0-10.2.0] audout:a | Yes | Audio services | ||
| [1.0.0-10.2.0] audout:d | Yes | Audio services | ||
| audout:u | Yes | Yes | Audio services | |
| [1.0.0-10.2.0] audren:a | Yes | Audio services | ||
| [1.0.0-10.2.0] audren:d | Yes | Audio services | ||
| audren:u | Yes | Yes | Audio services | |
| audrec:a | Yes | Audio services | ||
| audrec:d | Yes | Audio services | ||
| audrec:u | Yes | Audio services | ||
| audctl | Yes | Audio services | ||
| [1.0.0-2.3.0] codecctl | Yes | Audio services | ||
| hwopus | Yes | No | Audio services | Removed on Switch 2. |
| auddebug | Yes | Audio services | ||
| [6.0.0+] auddev | Yes | Audio services | ||
| [11.0.0+] aud:a | Yes | Audio services | ||
| [11.0.0+] aud:d | Yes | Audio services | ||
| banana | Yes | Profiler services | Not currently available on retail units. | |
| [2.0.0+] bcat:a | Yes | BCAT services | ||
| [2.0.0+] bcat:u | Yes | Yes | BCAT services | |
| [2.0.0+] bcat:m | Yes | BCAT services | ||
| [2.0.0+] bcat:s | Yes | BCAT services | ||
| news:a | Yes | BCAT services | ||
| news:c | Yes | BCAT services | ||
| news:m | Yes | BCAT services | ||
| news:p | Yes | BCAT services | ||
| news:v | Yes | BCAT services | ||
| prepo:u | Yes | Yes | BCAT services | |
| prepo:s | Yes | BCAT services | ||
| prepo:m | Yes | BCAT services | ||
| [1.0.0-5.1.0] prepo:a | Yes | BCAT services | ||
| [1.0.0] prepo:d | Yes | BCAT services | ||
| [6.0.0+] prepo:a2 | Yes | BCAT services | ||
| [13.0.0+] mnpp:app | Yes | Yes | BCAT services | |
| [13.0.0+] mnpp:sys | Yes | BCAT services | ||
| [13.0.0+] mnpp:web | Yes | BCAT services | ||
| [1.0.0] bpc:c | Yes | PCV services | ||
| bpc:b | Yes | PCV services | ||
| bpc:r | Yes | PCV services | ||
| bpc:w | Yes | PCV services | ||
| pcv | Yes | PCV services | ||
| pcv:arb | Yes | PCV services | ||
| pcv:imm | Yes | PCV services | ||
| time:u | Yes | Yes | PCV services | |
| time:a | Yes | PCV services | ||
| time:s | Yes | PCV services | ||
| [2.0.0+] bpc | Yes | PCV services | ||
| bpc:r | Yes | PCV services | ||
| pcv | Yes | PCV services | ||
| [2.0.0-8.1.0] time:u | Yes | PCV services | ||
| [2.0.0-8.1.0] time:a | Yes | PCV services | ||
| [2.0.0-8.1.0] time:s | Yes | PCV services | ||
| [1.0.0-7.0.1] pcv:arb | Yes | PCV services | ||
| [1.0.0-7.0.1] pcv:imm | Yes | PCV services | ||
| [8.0.0+] clkrst | Yes | PCV services | ||
| [8.0.0+] clkrst:a | Yes | PCV services | ||
| [8.0.0+] clkrst:i | Yes | PCV services | ||
| [8.0.0+] rgltr | Yes | PCV services | ||
| [8.0.0+] rtc | Yes | PCV services | ||
| bsd:u | Yes | Yes | Sockets services | |
| bsd:s | Yes | Sockets services | ||
| [15.0.0+] bsd:nu | Yes | Sockets services | ||
| bsdcfg | Yes | No | Sockets services | Removed on Switch 2. |
| [17.0.0+] ifcfg | Yes | Sockets services | ||
| [18.0.0+] bsd:a | Yes | Sockets services | ||
| [1.0.0-14.1.2] ethc:c | Yes | Sockets services | ||
| [1.0.0-14.1.2] ethc:i | Yes | Sockets services | ||
| nsd:u | Yes | Yes | Sockets services | |
| nsd:a | Yes | Sockets services | ||
| sfdnsres | Yes | Yes | Sockets services | |
| [18.0.0+] dns:priv | Yes | Sockets services | ||
| btdrv | Yes | Bluetooth Driver services | ||
| [5.0.0+] bt | Yes | Bluetooth Driver services | ||
| btm | Yes | BTM services | ||
| btm:dbg | Yes | BTM services | ||
| btm:sys | Yes | BTM services | ||
| [5.0.0+] btm:u | Yes | BTM services | ||
| caps:a | Yes | Capture services | ||
| caps:c | Yes | Capture services | ||
| [1.0.0] mm:u | Yes | No | Capture services | Removed on Switch 2. |
| [5.0.0+] caps:u | Yes | Yes | Capture services | |
| [2.0.0+] caps:sc | Yes | Display services | ||
| [2.0.0+] caps:ss | Yes | Display services | ||
| vi:m | Yes | Display services | ||
| vi:s | Yes | Display services | ||
| vi:u | Yes | No | Display services | Removed on Switch 2. |
| cec-mgr | Yes | Display services | ||
| [2.0.0+] mm:u | Yes | No | Display services | Removed on Switch 2. |
| [3.0.0-5.1.0] caps:su | Yes | Display services | ||
| [11.0.0+] lbl | Yes | Display services | ||
| dispdrv | Yes | Nvnflinger services | ||
| dmnt:- | Yes | Debug Monitor services | Not currently available on retail units. | |
| erpt:c | Yes | Error Report services | ||
| erpt:r | Yes | Error Report services | ||
| [13.0.0+] sprof:bg | Yes | Error Report services | ||
| [13.0.0+] sprof:sp | Yes | Error Report services | ||
| eupld:c | Yes | Error Upload services | ||
| eupld:r | Yes | Error Upload services | ||
| es | Yes | ETicket services | ||
| [13.0.0+] ndrm:la | Yes | ETicket services | ||
| [13.0.0+] ndrm:lu | Yes | ETicket services | ||
| fan | Yes | PTM services | ||
| psm | Yes | PTM services | ||
| tc | Yes | PTM services | ||
| ts | Yes | PTM services | ||
| pcm | Yes | PTM services | pcm is not available on retail units. | |
| [9.0.0+] apm:sys | Yes | PTM services | ||
| [9.0.0+] fgm | Yes | PTM services | ||
| [9.0.0+] fgm:0 | Yes | PTM services | ||
| [9.0.0+] fgm:9 | Yes | PTM services | ||
| [9.0.0+] fgm:dbg | Yes | PTM services | ||
| [9.0.0+] apm:am | Yes | PTM services | ||
| [10.0.0-10.2.0] lbl | Yes | PTM services | ||
| fatal:u | Yes | Fatal services | ||
| fatal:p | Yes | Fatal services | ||
| friend:u | Yes | Yes | Friend services | |
| friend:v | Yes | Friend services | ||
| friend:m | Yes | Friend services | ||
| friend:s | Yes | Friend services | ||
| friend:a | Yes | Friend services | ||
| [5.0.0-6.0.0] nd:app | Yes | Friend services | ||
| [5.0.0-6.0.0] nd:sys | Yes | Friend services | ||
| fsp-srv | Yes | Yes | Filesystem services | |
| fsp-ldr | Yes | Filesystem services | ||
| fsp-pr | Yes | Filesystem services | ||
| gpio | Yes | Bus services | ||
| i2c | Yes | Bus services | ||
| i2c:pcv | Yes | Bus services | ||
| pinmux | Yes | Bus services | ||
| pwm | Yes | Bus services | ||
| uart | Yes | Bus services | ||
| [3.0.0+] sasbus | Yes | Bus services | ||
| [8.1.1+] led | Yes | Bus services | ||
| htc | Yes | TMA services | ||
| htcs | Yes | TMA services | ||
| htc:tenv | Yes | TMA services | ||
| file_io | Yes | TMA services | ||
| gds | Yes | TMA services | ||
| tma_log | Yes | TMA services | ||
| tmagent | Yes | TMA services | ||
| jit:u | Yes | JIT services | ||
| [1.0.0-9.2.0] lbl | Yes | Backlight services | ||
| ldn:m | Yes | LDN services | ||
| ldn:s | Yes | LDN services | ||
| ldn:u | Yes | Yes | LDN services | |
| [5.0.0-6.0.0] ndd | Yes | LDN services | ||
| [9.0.0+] lp2p:app | Yes | LDN services | ||
| [9.0.0+] lp2p:sys | Yes | LDN services | ||
| [9.1.0+] lp2p:m | Yes | LDN services | ||
| [1.0.0+] ldr:pm | Yes | Loader services | ||
| ldr:ro | Yes | Yes | Loader services | |
| ldr:shel | Yes | Loader services | ||
| ldr:dmnt | Yes | Loader services | ||
| [3.0.0+] ldr:pm | Yes | Loader services | ||
| ldr:shel | Yes | Loader services | ||
| ldr:dmnt | Yes | Loader services | ||
| lm | Yes | Yes | Log services | |
| lm:get | Yes | Log services | ||
| manu | Yes | Manu Services | "Manufacturing". Present in factory firmware but not installed on retail systems. | |
| lr | Yes | NCM services | ||
| ncm | Yes | NCM services | ||
| ncm:v | Yes | NCM services | ||
| nfc:am | Yes | NFC services | ||
| nfc:mf:u | Yes | Yes | NFC services | |
| nfc:user | Yes | Yes | NFC services | |
| nfc:sys | Yes | NFC services | ||
| nfp:user | Yes | Yes | NFC services | |
| nfp:dbg | Yes | NFC services | ||
| nfp:sys | Yes | NFC services | ||
| nifm:u | Yes | Yes | Network Interface services | |
| nifm:a | Yes | Network Interface services | ||
| nifm:s | Yes | Network Interface services | ||
| nim | Yes | NIM services | ||
| nim:shp | Yes | NIM services | ||
| ntc | Yes | Yes | NIM services | |
| [5.0.0+] nim:eca | Yes | NIM services | ||
| [7.0.0+] nim:ecas | Yes | NIM services | ||
| npns:u | Yes | NPNS services | ||
| npns:s | Yes | NPNS services | ||
| nvdrv:a | Yes | NV services | ||
| nvdrv:s | Yes | NV services | ||
| nvdrv:t | Yes | NV services | ||
| nvdrv | Yes | No | NV services | |
| nvdrvdbg | Yes | NV services | ||
| nvgem:c | Yes | NV services | ||
| nvgem:cd | Yes | NV services | ||
| nvmemp | Yes | NV services | ||
| [10.0.0+] nvdbg:d | Yes | NV services | ||
| pcie | Yes | PCIe services | ||
| [6.0.0+] pcie:log | Yes | PCIe services | ||
| pctl | Yes | Yes | Parental Control services | |
| pctl:a | Yes | Parental Control services | ||
| pctl:s | Yes | Parental Control services | ||
| pctl:r | Yes | Parental Control services | ||
| pm:bm | Yes | Process Manager services | ||
| pm:info | Yes | Process Manager services | ||
| pm:shell | Yes | Process Manager services | ||
| psc:c | Yes | PSC services | ||
| psc:m | Yes | PSC services | ||
| [5.0.0+] srepo:u | Yes | PSC services | ||
| [5.0.0+] srepo:a | Yes | PSC services | ||
| [8.0.0+] ovln:rcv | Yes | PSC services | ||
| [8.0.0+] ovln:snd | Yes | PSC services | ||
| [9.0.0+] psc:l | Yes | PSC services | ||
| [9.0.0+] time:su | Yes | PSC services | ||
| [9.0.0+] time:s | Yes | PSC services | ||
| [9.0.0+] time:al | Yes | PSC services | ||
| [9.0.0+] time:m | Yes | PSC services | ||
| [9.0.0+] time:p | Yes | PSC services | ||
| [9.0.0+] ins:r | Yes | PSC services | ||
| [9.0.0+] ins:s | Yes | PSC services | ||
| [11.0.0+] hshl:set | Yes | PSC services | ||
| [11.0.0+] hshl:sys | Yes | PSC services | ||
| [3.0.0+] ldr:ro | Yes | Yes | RO services | |
| ro:dmnt | Yes | RO services | ||
| [7.0.0+] ro:1 | Yes | RO services | ||
| set | Yes | Yes | Settings services | |
| set:fd | Yes | Settings services | ||
| set:cal | Yes | Settings services | ||
| set:sys | Yes | Settings services | ||
| [3.0.0+] mii:u | Yes | Yes | Shared Database services | |
| [3.0.0+] mii:e | Yes | Shared Database services | ||
| [3.0.0+] pdm:ntfy | Yes | Shared Database services | ||
| [3.0.0+] pdm:qry | Yes | Shared Database services | ||
| [3.0.0-15.0.1] pl:u | Yes | Yes | Shared Database services | |
| [5.0.0+] miiimg | Yes | Shared Database services | ||
| [6.0.0+] avm | Yes | Shared Database services | ||
| [9.0.0+] pl:s | Yes | Shared Database services | ||
| ssl | Yes | Yes | SSL services | |
| [15.0.0+] ssl:s | Yes | SSL services | ||
| csrng | Yes | Yes | SPL services | |
| spl: | Yes | SPL services | ||
| [4.0.0+] spl:mig | Yes | SPL services | ||
| [4.0.0+] spl:fs | Yes | SPL services | ||
| [4.0.0+] spl:ssl | Yes | SPL services | ||
| [4.0.0+] spl:es | Yes | SPL services | ||
| [5.0.0+] spl:manu | Yes | SPL services | ||
| sf-uds | Yes | System debug applet "recovery" has access to this service but it doesn't appear to exist. | ||
| tspm | Yes | Applications on [1.0.0] used to have access to this service but it doesn't appear to be present on retail devices. | ||
| usb:ds | Yes | USB services | ||
| usb:hs | Yes | USB services | ||
| usb:pd | Yes | USB services | ||
| usb:pd:c | Yes | USB services | ||
| [1.0.0] usb:pd:m | Yes | USB services | ||
| usb:pm | Yes | USB services | ||
| [7.0.0+] usb:hs:a | Yes | USB services | ||
| [7.0.0+] usb:qdb | Yes | USB services | ||
| [8.0.0+] usb:obsv | Yes | USB services | ||
| [1.0.0-14.1.2] wlan:inf | Yes | WLAN services | ||
| [1.0.0-14.1.2] wlan:lcl | Yes | WLAN services | ||
| [1.0.0-14.1.2] wlan:lg | Yes | WLAN services | ||
| [1.0.0-14.1.2] wlan:lga | Yes | WLAN services | ||
| [1.0.0-14.1.2] wlan:sg | Yes | WLAN services | ||
| [1.0.0-14.1.2] wlan:soc | Yes | WLAN services | ||
| [6.0.0-14.1.2] wlan:dtc | Yes | WLAN services | ||
| [15.0.0+] wlan | Yes | WLAN services | ||
| [15.0.0+] wlan:nd | Yes | WLAN services | ||
| [15.0.0+] wlan:p | Yes | WLAN services | ||
| [4.0.0+] grc:c | Yes | GRC services | ||
| [6.0.0+] grc:d | Yes | GRC services | ||
| [4.0.0+] mig:usr | Yes | Migration services | ||
| [4.0.0+] caps:dc | Yes | Jpegdec services | ||
| [6.0.0+] olsc:s | Yes | OLSC services | ||
| [10.0.0+] olsc:u | Yes | OLSC services | ||
| [13.1.0+] spbg:sp | Yes | OLSC services | ||
| [9.0.0+] ngct:s | Yes | NGCT services | ||
| [9.0.0+] ngct:u | Yes | Yes | NGCT services | |
| [10.0.0+] pgl | Yes | PGL services | ||
| [11.0.0+] capmtp | Yes | Capmtp services | ||
| [14.0.0+] omm | Yes | OMM services | ||
| [14.0.0+] ommdisp | Yes | OMM services | ||
| [14.0.0+] idle:sys | Yes | OMM services | ||
| [14.0.0+] spsm | Yes | OMM services | ||
| [15.0.0+] eth:nd | Yes | Ethernet services | ||
| [16.0.0+] ngc:u | Yes | Yes | NGC services |