A NDIS miniport driver (also called a miniport driver) has two basic functions:
A miniport driver communicates with its NIC and with higher-level drivers through the NDIS library. The NDIS library exports a full set of functions (NdisXxx functions) that encapsulate all the operating system functions that a miniport driver needs to call. The miniport driver, in turn, must export a set of entry points (MiniportXxx functions) that NDIS calls for its own purposes or on behalf of higher-level drivers to access the miniport driver.
Send and receive operations illustrate the interaction of miniport drivers with NDIS and with higher-level drivers:
NDIS supports miniport drivers for both connectionless environments and connection-oriented environments.
Connectionless miniport drivers control NICs for connectionless network media, such as Ethernet, FDDI, and Token Ring. Connectionless miniport drivers are further divided into the following subtypes:
Connection-oriented miniport drivers control NICs for connection-oriented network media, such as ATM and ISDN. Connection-oriented miniport drivers are always deserialized — they always serialize the operation of their own MiniportXxx functions and queue internally all incoming send packets.
An NDIS miniport driver can have a non-NDIS lower edge (see the following figure).

NDIS Mininiport with Non-NDIS Lower Edge
Through its non-NDIS lower edge, a miniport driver uses the class interface for a bus such as the Universal Serial Bus (USB) or IEEE 1394 (firewire) to control a device on the bus. The miniport driver communicates with the device by sending I/O request packets (IRPs) either to the bus or directly to remote devices that are attached to the bus. At it’s upper edge, the miniport driver exposes a standard NDIS miniport driver interface, which enables the miniport driver to communicate with overlying NDIS drivers.
NDIS also supports Wide Area Network (WAN) extensions for miniport drivers that manage WAN NICs. For more information on the WAN network environment, see Environment for WAN Network Drivers.