LDN services: Difference between revisions

Line 561: Line 561:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || CreateNetworkService
| 0 || [[#CreateNetworkService]]
|-
|-
| 8 || CreateNetworkServiceMonitor
| 8 || [[#CreateNetworkServiceMonitor]]
|}
|}
== CreateNetworkService ==
Takes an input u32, an u64 pid_reserved, a PID, returns an output [[#INetworkService]].
The input u32 must be value 0x1.
== CreateNetworkServiceMonitor ==
Takes an input u64 pid_reserved, a PID, returns an output [[#INetworkServiceMonitor]].


== INetworkService ==
== INetworkService ==
Line 601: Line 609:
| 784 ||
| 784 ||
|-
|-
| 1536 || SendToOtherGroup
| 1536 || [[#SendToOtherGroup]]
|-
|-
| 1544 || RecvFromOtherGroup
| 1544 || [[#RecvFromOtherGroup]]
|-
|-
| 1552 || AddAcceptableGroupId
| 1552 || [[#AddAcceptableGroupId]]
|-
|-
| 1560 || [9.1.0+]
| 1560 || [9.1.0+]
Line 611: Line 619:


=== Initialize ===
=== Initialize ===
No input/output.
Returns 0.
Returns 0.
=== Cmd512 ===
Takes a type-0x19 input buffer containing a 0x200-byte struct, a type-0x22 output buffer containing an array of struct {unknown}, returns an output u32.
=== Cmd768 ===
Takes a type-0x31 input buffer containing a 0x200-byte struct, no output.
=== Cmd776 ===
No input/output.
=== Cmd784 ===
Takes a type-0x21 input buffer, no output.
The buffer size must be <=0x80.
=== SendToOtherGroup ===
Takes an input [[#MacAddress]], a [[#MacAddress]], an u16, an u16, an u32, a type-0x21 input buffer, no output.
The buffer size must be <=0x400.
=== RecvFromOtherGroup ===
Takes an input u32, a type-0x22 output buffer, returns a [[#MacAddress]], an u16, an u16, an u32 out_size, a s32.
The out_size is the original size used for copying to the output buffer, before it's clamped to the output-buffer size.
=== AddAcceptableGroupId ===
Takes an input [[#MacAddress]], no output.
=== Cmd1560 ===
No input/output.


== INetworkServiceMonitor ==
== INetworkServiceMonitor ==