Using the Network Driver Design Guide (NDIS 5.1)

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

Windows-based operating systems support several types of kernel-mode network drivers. The network drivers documentation describes how to write these drivers. This topic briefly describes the supported network driver types and explains which sections of this guide you should read before writing each type of network driver.

Microsoft Windows 2000 and later versions of the operating system support four types of kernel-mode network drivers:

  • Miniport drivers

    A miniport driver directly manages a network interface card (NIC) and provides an interface to higher-level drivers.

  • Intermediate drivers

    An intermediate driver interfaces between upper-level protocol drivers, such as a legacy transport driver, and a miniport driver. A typical reason to develop an intermediate protocol driver is to perform media translation between an existing legacy transport driver and a miniport driver that manages a NIC for a new media type unknown to the transport driver.

  • Protocol drivers

    An upper-level protocol driver implements a TDI interface, or possibly an application-specific interface, at its upper edge to provide services to users of the network. At its lower edge, a protocol driver provides a protocol interface to pass packets to and receive incoming packets from the next-lower driver.

    Another type of protocol driver is a connection-oriented call manager. A call manager provides call setup and tear-down services for connection-oriented clients, which are also protocol drivers.

  • Filter-hook driver

    A filter-hook driver is used to filter packets. This driver extends the functionality of the IP filter driver, which is supplied with the operating system.

For general information about Windows network architecture and programming considerations, see Network Architecture for Kernel-Mode Driversand Network Driver Programming Considerations. For information about network INF files, which are used to install network components, see Installing Network Components. If your network driver requires a notify object--for example, to control bindings--see also Notify Objects for Network Components.

To find out which additional sections to read for a particular driver type, see the following sections.

Note   The TDI feature is deprecated and will be removed in future versions of Microsoft Windows. Depending on how you use TDI, use either the Winsock Kernel (WSK) or Windows Filtering Platform (WFP). For more information about WFP and WSK, see Windows Filtering Platform and Winsock Kernel. For a Windows Core Networking blog entry about WSK and TDI, see Introduction to Winsock Kernel (WSK).

 

Miniport Drivers (NDIS 5.1)

There are several types of miniport drivers. Read the sections that are recommended for the type of driver you are writing:

Intermediate Drivers (NDIS 5.1)

You can write an intermediate driver that has either a connectionless or a connection-oriented lower edge. Read the sections that are recommended for the type of driver you are writing:

  • To learn about intermediate drivers that have a connectionless lower edge
    If you are writing an intermediate driver whose lower edge provides an interface to connectionless miniport drivers, read:

    NDIS Intermediate Drivers

  • To learn about intermediate drivers that have a connection-oriented lower edge
    If you are writing an intermediate driver whose lower edge provides an interface to connection-oriented miniport drivers, read:

    NDIS Intermediate Drivers

    Connection-Oriented NDIS

Protocol Drivers (NDIS 5.1)

You can write a protocol driver that has either a connectionless or a connection-oriented lower edge. In addition, your protocol driver can expose a transport driver interface (TDI) at its upper edge and can also provide Winsock support. Read the sections that are recommended for the type of driver you are writing:

To learn about protocol drivers that have a connectionless lower edge

If you are writing a protocol driver whose lower edge provides an interface to connectionless miniport drivers, read:

NDIS Protocol Drivers

To learn about protocol drivers that are connection-oriented clients, or that are connection-oriented providers of call manager services

If you are writing a connection-oriented client, which provides an interface to connection-oriented miniport drivers, or if you will be writing a connection-oriented call manager, read:

NDIS Protocol Drivers

Connection-Oriented NDIS

To learn about protocol drivers that have a TDI upper edge

If you are writing a protocol that has a TDI upper edge, read:

NDIS Protocol Drivers

TDI Transports and Their Clients

TDI Routines, Macros, and Callbacks

TDI Operations

To learn about protocol drivers that have Winsock support

If you are writing a protocol that provides Winsock support, read:

NDIS Protocol Drivers

Transport Helper DLLs for Windows Sockets

Note   The TDI feature is deprecated and will be removed in future versions of Microsoft Windows. Depending on how you use TDI, use either the Winsock Kernel (WSK) or Windows Filtering Platform (WFP). For more information about WFP and WSK, see Windows Filtering Platform and Winsock Kernel. For a Windows Core Networking blog entry about WSK and TDI, see Introduction to Winsock Kernel (WSK).

 

Filter-Hook Drivers (NDIS 5.1)

To learn about filter hook drivers, read the following section:

Filter-Hook Drivers

 

 

Send comments about this topic to Microsoft