Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. |