RNDIS Driver Implementation Guide
Other versions of this page are also available for the following:
8/28/2008
Remote Network Driver Interface Specification (RNDIS) is a specification for network devices on dynamic Plug and Play I/O buses such as universal serial bus (USB) technology. RNDIS consists of two parts:
- A bus-independent message set.
- A description of how the message set is conveyed across a specific I/O bus on which it is supported.
By using a bus-independent view and leveraging the familiar driver interface semantics already provided by NDIS, RNDIS improves the development experience for hardware providers and the installation experience of end users.
RNDIS messages are sent to a RNDIS device from the host, and a RNDIS device responds with an appropriate completion message. There are also messages sent in an unsolicited fashion, from a RNDIS device to the host.
RNDIS is an extension of the well-understood and time-tested NDIS architecture. NDIS defines a function-call interface for device-specific NDIS miniport drivers. This interface defines primitives to send and receive network data, and to query and set configuration parameters and statistics. RNDIS leverages NDIS by defining a message wrapping for the NDIS miniport driver interface, thus moving the NDIS-handling code from a miniport driver into the device itself. In this and other ways, RNDIS allows for a wide range of device functionality and performance levels. The RNDIS model has many advantages:
- Ability to support more protocols over more buses in a short time.
- Driver architecture that has been proven for both networking and external bus device models.
Value-added mechanisms that already exist in the NDIS network stack are supported for RNDIS devices.
For more information on RNDIS, please see the RNDIS specification located on this Microsoft Web site.
See Also
Concepts
USB Host RNDIS Client Driver
RNDIS Control Messages
RNDIS Data Message