RNDIS
This embedded USB device RNDIS (Remote Network Driver Interface Standard) class driver provides a virtual Ethernet link over USB. RNDIS is a Microsoft proprietary protocol.
The package is a function device implementation of this class. This allows a device to connect to a host system and appear to it as one or more locally connected virtual Ethernet ports. This device class driver provides a network driver interface that conforms to HCC’s Network Driver interface standard, described in the HCC Network Driver User Guide.
Features
- Conforms to the HCC Advanced Embedded Framework.
- Conforms to HCC’s Network Driver interface standard, described in the HCC Network Driver User Guide.
- Designed for integration with both RTOS and non-RTOS based systems.
- Supports all devices that conform to the RNDIS specification.
- Compatible with sample device files produced by using HCC USB Device Descriptor Generator.
- Allows the user to specify a callback for state change events.
Architecture

The USB device port creates a virtual Ethernet port on the embedded device. This connects to a physical Ethernet port and thus to a network. If the embedded device wants to be a device on that network then we provide a virtual network on the embedded device – so that the network driver logically talks to another virtual Ethernet port inside the device – and a network stack can then be built on that interface.
In this virtual network configuration the system will probably need a simple DHCP server to provide an IP address to the remote network Ethernet port of the PC that is in the HCC system.
This diagram shows access to the TCP/IP stack over USB/RNDIS:

This class driver is effectively a library. It provides a set of function calls that an application can use to send and receive data through the serial port.