基于 Windows 的作系统支持多种类型的内核模式 NDIS 网络驱动程序,包括微型端口、协议、筛选器和中间驱动程序。 本文介绍每个受支持的驱动程序类型,并介绍了开发适用于 Windows 的网络驱动程序之前应阅读的文档。
最新版本的网络接口规范(NDIS)为 版本 6.89。 有关 NDIS 的所有受支持版本及其功能的详细信息,请参阅 NDIS 版本的概述。
支持的驱动程序类型
Windows Vista 和更高版本的作系统版本支持以下类型的基于内核模式的 NDIS 网络驱动程序:
微型端口驱动程序
微型端口驱动程序管理网络适配器,并为更高级别的驱动程序提供接口。 如果需要控制物理硬件(例如网络接口卡(NIC)或虚拟设备,请使用微型端口驱动程序。
常见的微型端口驱动程序变体:
- 面向连接的微型端口调用管理器 (MCM)
- Windows 驱动程序模型 (WDM) 微型端口驱动程序
- 中间驱动程序的上边缘
协议驱动程序
协议驱动程序通过绑定到微型端口适配器在驱动程序堆栈中提供高级服务。 如果需要实现网络协议或特定于应用程序的网络接口,请使用协议驱动程序。
常见的协议驱动程序变体:
- 面向连接的呼叫管理器 (MCM)
- 面向连接的客户端
- 中间驱动程序的下边缘
筛选器驱动程序
筛选器驱动程序筛选协议驱动程序和微型端口驱动程序之间的信息。 如果需要修改网络流量或监视网络活动而不更改现有驱动程序,请使用筛选器驱动程序。
常见用例:
- 增强微型端口适配器提供的服务
- 收集网络统计信息
- 实现修改或监控筛选器
中间驱动程序
中间驱动程序位于协议驱动程序和微型端口驱动程序之间,为两者提供接口。 如果需要实现负载均衡或故障转移解决方案等多路复用器服务,请使用中间驱动程序。
主要功能:
- 实现 n 到 m 多路复用器服务
- 提供负载均衡和故障转移解决方案
- 将硬件作为微型端口中间驱动程序进行管理
其他支持的驱动程序模型
使用以下驱动程序模型来处理特定的硬件技术和体系结构。
| 科技 | Description |
|---|---|
| 可缩放网络 | 支持将任务卸载到网络适配器的网络技术,例如 Header-Data 拆分 - 一项服务,用于将接收的以太网帧中的标头和数据拆分为单独的缓冲区。 接收端缩放 - 一种网络驱动程序技术,可提高多处理器系统上的网络性能。 TCP 烟囱卸载 - 将 TCP 协议处理的数据传输部分卸载到具有相应功能的网络适配器。 TCP/IP 卸载 - 将任务或连接卸载到具备相应功能的网络适配器上。 网络直接内核提供程序接口 (NDKPI) - 允许内核模式 Windows 组件(如 SMB 服务器和客户端)使用独立硬件供应商(IHV)提供的远程直接内存访问(RDMA)功能。 使用泛型路由封装(NVGRE)任务卸载的网络虚拟化 - 允许使用泛型路由封装(GRE)封装的数据包 大量发送卸载 (LSO) 虚拟机队列 (VMQ) 传输 (Tx) 校验和卸载 接收 (Rx) 校验和卸载。 |
| 虚拟化网络 | 支持 Hyper-V 虚拟化环境的网络技术,例如 单根 I/O 虚拟化 (SR-IOV) 虚拟机队列 (VMQ) Hyper-V 可扩展交换机。 |
| 无线网络 | 包含 Native 802.11 Wireless LAN 的网络功能。 |
| 网络模块注册器 | 一个系统设施,允许驱动程序将网络模块相互连接。 |
| Winsock 内核 | 内核模式网络编程接口 (NPI)。 |
| IP 帮助程序 | 一组实用工具函数,使驱动程序能够检索和修改有关本地计算机的网络配置的信息。 |
| Windows 筛选平台回调驱动程序 | 内核模式接口,用于对网络数据进行深入检查、数据包修改、流修改和日志记录。 |
| 系统区域网络 | 一种网络连接,使用 Windows 套接字直通来支持高性能、面向连接的网络。 |