Ethernet services
This is a refactored sysmodule added with [15.0.0+] for handling ethernet communication.
eth:nd
This is "nn::anif::detail::ISfDriverServiceCreator".
This was added with [15.0.0+].
| Cmd | Name |
|---|---|
| 0 | #CreateDriverService |
CreateDriverService
No input. Returns an #ISfDriverService.
ISfDriverService
This is "nn::anif::detail::ISfDriverService".
This was added with [15.0.0+].
| Cmd | Name |
|---|---|
| 0 | #OpenNetworkInterface |
| 128 | GetDriverInfo |
| 129 | GetNetworkInterfaceList |
| 130 | GetStateChangedEvent |
| 131 | GetNetworkInterfaceListUpdatedEvent |
| 384 | Ioctl |
| 385 | IoctlRead |
| 386 | IoctlWrite |
| 387 | IoctlReadWrite |
| 388 | IoctlSetHandle |
| 389 | IoctlGetHandle |
OpenNetworkInterface
Takes a type-0x21 input buffer. Returns an #ISfNetworkInterfaceService.
ISfNetworkInterfaceService
This is "nn::anif::detail::ISfNetworkInterfaceService".
This was added with [15.0.0+].
| Cmd | Name |
|---|---|
| 0 | Duplicate |
| 1 | BringUp |
| 2 | BringDown |
| 3 | StartCommunication |
| 4 | StopCommunication |
| 5 | CreateSharedMemory |
| 6 | DestroySharedMemory |
| 128 | GetNetworkInterfaceInfo |
| 129 | GetStateChangedEvent |
| 130 | GetRxQueue |
| 131 | GetTxQueue |
| 256 | SetMacAddress |
| 257 | SetMru |
| 258 | SetMtu |
| 259 | SetFeatures |
| 260 | SetMulticastFilter |
| 261 | SetRxBufferSize |
| 262 | SetTxBufferSize |
| 384 | Ioctl |
| 385 | IoctlRead |
| 386 | IoctlWrite |
| 387 | IoctlReadWrite |
| 388 | IoctlSetHandle |
| 389 | IoctlGetHandle |
Notes
CreateInterfaceAvailableEvent is used with an all-zero DeviceFilter. QueryAvailableInterfaces is used multiple times, each time with flags=0x3. The used filters include at least the following:
| System Version | VendorId | ProductId | Description |
|---|---|---|---|
| 0x057E | 0x201B | RTL8154B CrdA NIC | |
| 0x0B95 | 0x1790 | AX88179 Gigabit Ethernet | |
| 0x0B95 | 0x7720 | AX88772 | |
| 0x2001 | 0x4A00 | DUB-1312 Gigabit Ethernet Adapter | |
| 0x0BDA | 0x8153 | RTL8153 Gigabit Ethernet Adapter |