Protocol Drivers

The operating system provides protocol drivers for TCP/IP, Point-to-Point Protocol (PPP), and Infrared Data Association (IrDA). A protocol driver exports a set of ProtocolXXX functions at its lower edge. It communicates with NDIS to send and receive network packets and to bind to an underlying miniport network adapter driver or intermediate NDIS driver that exports a MiniportXXX interface at its upper edge.

Protocol drivers that communicate with underlying NDIS drivers call NDIS library functions to send and receive packets. To send a packet to an underlying NDIS driver, a protocol driver must call the NdisSend or NdisSendPackets function. A protocol driver must call the NdisRequest function to forward a request to the underlying driver that it queries for the capabilities or status of its network adapter or that it set the state of its network adapter.

An NDIS protocol driver can support Transport Driver Interface (TDI) at its upper edge, or it could export a private interface to a higher-level kernel-mode driver, possibly through a transport stack of drivers, including one that supports TDI at the top of the stack. For example, an NDIS protocol driver can be the lowest module of a multi-module transport implementation of a standard protocol, such as TCP/IP, with TDI support in the highest module.

The following illustration shows the NDIS protocol-driver architecture.

See Also

Miniports, Intermediate Drivers, and Protocol Drivers | NdisSend | NdisSendPackets | NdisRequest

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.