Edit

Share via


Learn about supported driver types

Windows-based operating systems support several types of kernel-mode NDIS network drivers, including miniport, protocol, filter, and intermediate drivers. This article describes each supported driver type and explains which documentation you should read before developing network drivers for Windows.

The most recent version of the Network Driver Interface Specification (NDIS) is version 6.89. For more information on all supported versions of NDIS and their features, see Overview of NDIS versions.

Supported driver types

Windows Vista and later operating system versions support the following types of kernel-mode NDIS-based network drivers:

Miniport Drivers

A miniport driver manages network adapters and provides an interface for higher-level drivers. Use miniport drivers when you need to control physical hardware like network interface cards (NICs) or virtual devices.

Common miniport driver variations:

  • Connection-oriented miniport call manager (MCM)
  • Windows Driver Model (WDM) miniport driver
  • Upper edge of an intermediate driver

Learn more about developing miniport drivers

Protocol Drivers

A protocol driver provides high-level services in a driver stack by binding to miniport adapters. Use protocol drivers when you need to implement network protocols or application-specific network interfaces.

Common protocol driver variations:

  • Connection-oriented call manager (MCM)
  • Connection-oriented client
  • Lower edge of an intermediate driver

Learn more about developing protocol drivers

Filter Drivers

A filter driver filters information between protocol drivers and miniport drivers. Use filter drivers when you need to modify network traffic or monitor network activity without changing existing drivers.

Common use cases:

  • Enhance services provided by miniport adapters
  • Collect network statistics
  • Implement modifying or monitoring filters

Learn more about developing filter drivers

Intermediate Drivers

An intermediate driver sits between protocol drivers and miniport drivers, providing interfaces to both. Use intermediate drivers when you need to implement multiplexer services like load balancing or failover solutions.

Key capabilities:

  • Implement n to m multiplexer services
  • Provide load balancing and failover solutions
  • Manage hardware as a miniport-intermediate driver

Learn more about developing intermediate drivers

Additional supported driver models

Use the following driver models to work with particular hardware technologies and architectures.

Technology Description
Scalable Networking Networking technologies that support the offloading of tasks to a network adapter, such as

Header-Data Split - A service that splits the header and the data in received Ethernet frames into separate buffers.
Receive Side Scaling - A network driver technology that improves network performance on multiprocessor systems.
TCP Chimney Offload - An offload of the data-transfer part of the TCP protocol processing to a network adapter that has the appropriate capabilities.
TCP/IP Offload - An offload of tasks or connections to a network adapter that has the appropriate capabilities.
Network Direct Kernel Provider Interface (NDKPI) - Enables kernel-mode Windows components, such as SMB server and client, to use remote direct memory access (RDMA) functionality that is provided by independent hardware vendors (IHVs).
Network Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload - Makes it possible to use Generic Routing Encapsulation (GRE)-encapsulated packets with

Large Send Offload (LSO)
Virtual Machine Queue (VMQ)
Transmit (Tx) checksum offload
Receive (Rx) checksum offload.
Virtualized Networking Networking technologies that support Hyper-V virtualization environments, such as

Single Root I/O Virtualization (SR-IOV)
Virtual Machine Queue (VMQ)
Hyper-V Extensible Switch.
Wireless Networking Networking capabilities that include Native 802.11 Wireless LAN.
Network Module Registrar A system facility that allows a driver to attach network modules to one another.
Winsock Kernel A kernel-mode Network Programming Interface (NPI).
IP Helper A set of utility functions that enable drivers to retrieve and modify information about the network configuration of the local computer.
Windows Filtering Platform Callout Drivers A kernel-mode interface that enables deep inspection, packet modification, stream modification, and logging of network data.
System Area Networks A type of network connection that uses Windows Sockets Direct to support a high-performance, connection-oriented network.