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 Drivers and 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 Nofity Objects for Network Components.
To find out which additional sections to read for a particular driver type, see the following sections.
Miniport Drivers
There are several types of miniport drivers. Read the sections that are recommended for the type of driver you are writing:
-
To learn about connectionless miniport drivers
-
If you are writing a miniport driver that controls a NIC for connectionless network media, such as Ethernet, FDDI, or Token Ring; read:
Overview of Miniport Driver Operations and Functions
Miniport Driver DriverEntry Function and Initialization
Obtaining and Setting Miniport Driver Information and NDIS Support for WMI
Plug and Play for NDIS Miniport Drivers
To learn about connection-oriented miniport drivers
-
If you are writing a miniport driver that controls a NIC for connection-oriented network media, such as ATM or ISDN, read:
All the sections listed for connectionless miniport drivers
To learn about WAN miniport drivers
-
If you are writing a miniport driver that controls a WAN NIC, read:
All the sections listed for connectionless miniport drivers
To learn about integrated miniport driver call managers (MCM)
-
If you are writing a miniport driver that controls a connection-oriented NIC and that also provides call manager services, read:
All the sections listed for connectionless miniport drivers
To learn about miniports with a WDM lower interface
-
If you are writing a miniport driver that has a WDM lower interface read:
All the sections listed for connectionless miniport drivers
To learn about IrDA miniport drivers
-
If you are writing a miniport driver that controls an IrDA adapter, read:
All the sections listed for connectionless miniport drivers
To learn about additional miniport capabilities
- To learn about additional miniport capabilities, read:
Intermediate Drivers
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: 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:
Protocol Drivers
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: 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: To learn about protocol drivers that have a TDI upper edge
-
If you are writing a protocol that has a TDI upper edge, read:
TDI Transports and Their Clients
To learn about protocol drivers that have Winsock support
- If you are writing a protocol that provides Winsock support, read:
Filter-Hook Drivers
To learn about filter hook drivers, read the following section: