在网络驱动程序设计指南中导航

Microsoft基于 Windows 的操作系统支持多种类型的内核模式网络驱动程序。 Windows 驱动程序工具包 (WDK) 文档的网络部分介绍了如何编写这些网络驱动程序。 本主题简要介绍了支持的网络驱动程序类型,并介绍了在编写每种网络驱动程序类型之前应阅读的网络部分。

此网络驱动程序设计指南记录了以下网络驱动程序接口规范(NDIS)接口:

  • Windows 8.1、Windows Server 2012 R2 和更高版本的 Windows 支持 NDIS 6.40。 NDIS 6.30 包括对网络直接内核提供程序接口 (NDKPI) 1.12 的支持。

    有关 NDIS 6.30 的详细信息,请参阅 NDIS 6.40 简介。

  • Windows 8、Windows Server 2012 和更高版本的 Windows 支持 NDIS 6.30。 NDIS 6.30 包括对单根/I/O 虚拟化(SR-IOV)、Hyper-V 可扩展交换机、网络直接内核提供程序接口 (NDKPI) 1.1 和其他服务的支持。

    有关 NDIS 6.30 的详细信息,请参阅 NDIS 6.30 简介。

  • Windows 7、Windows Server 2008 R2 和更高版本的 Windows 支持 NDIS 6.20。 NDIS 6.20 包括对虚拟机队列(VMQ)、接收端限制和其他服务的支持。

    有关 NDIS 6.20 的详细信息,请参阅 NDIS 6.20 简介。

  • NDIS 6.1,在 Windows Vista 上支持 Service Pack 1(SP1)、Windows Server 2008 和更高版本的 Windows。 NDIS 6.1 包括对标头数据拆分、直接 OID 请求和其他服务的支持。

    有关 NDIS 6.1 的详细信息,请参阅 NDIS 6.1 简介。

  • NDIS 6.0,在 Windows Vista 和更高版本的 Windows 上受支持。 NDIS 6.0 包括对筛选器驱动程序和早期 NDIS 版本未提供的许多附加服务的支持。 NDIS 6.0 包括驱动程序初始化和网络数据管理的主要更新,包括对运行时驱动程序重新配置的必需支持,以及 用于处理网络数据包数据的NET_BUFFER 体系结构。 有关支持运行时重新配置的详细信息,请参阅 驱动程序堆栈管理。 有关如何在 NDIS 6.0 中处理网络数据包数据的详细信息,请参阅 NET_BUFFER体系结构

    有关 NDIS 6.0 的详细信息,请参阅 NDIS 6.0 简介。

Windows Vista 和更高版本的操作系统版本支持以下类型的基于内核模式的 NDIS 网络驱动程序:

微型端口驱动程序
微型端口驱动程序管理微型端口适配器,并为更高级别的驱动程序提供适配器的接口。 微型端口适配器是一个概念实体,可以表示物理设备或虚拟设备。 例如,微型端口适配器可以表示网络接口卡(NIC)或与中间驱动程序关联的虚拟设备。

微型端口驱动程序有许多变体,例如面向连接的微型端口调用管理器(MCM)、Windows 驱动程序模型(WDM)微型端口驱动程序和中间驱动程序的上边缘。

协议驱动程序
协议驱动程序在驱动程序堆栈中提供高级服务。 协议驱动程序绑定到基础微型端口适配器。 上层协议驱动程序实现接口(可能是应用程序特定的接口)在其上边缘向网络用户提供服务。 在其下边缘,协议驱动程序提供一个协议接口,用于将网络数据传递到下一个较低驱动程序并从中接收传入数据。

协议驱动程序有很多变体,例如 面向连接的调用管理器(MCM)、面向连接的客户端和 中间驱动程序的下边缘。

筛选器驱动程序
筛选器驱动程序筛选协议驱动程序和微型端口驱动程序之间的接口信息。 筛选器模块 附加到协议驱动程序和微型端口适配器之间的绑定中,并且通常对其他驱动程序透明。 筛选器驱动程序可以实现 修改或监视筛选器。 例如,筛选器驱动程序可以增强基础微型端口适配器提供的服务,或只是收集统计信息。

中间驱动程序
高级协议驱动程序和微型端口驱动程序之间的中间驱动程序接口。 中间驱动程序在其上边缘提供微型端口驱动程序接口,以绑定到过度协议驱动程序。 中间驱动程序在其下边缘提供协议驱动程序接口,以绑定到基础微型端口适配器。 中间驱动程序通常用于实现 nm 多路复用器服务。 例如,中间驱动程序可以实现负载均衡和故障转移解决方案。

当中间驱动程序配置为 微型端口中间驱动程序时,中间驱动程序还可以管理硬件。

有关 Windows 网络体系结构和编程注意事项的详细信息,请参阅 内核模式驱动程序 的网络体系结构和 网络驱动程序编程注意事项

有关用于安装网络组件的网络 INF 文件的详细信息,请参阅 “安装网络组件”。 如果网络驱动程序需要通知对象(例如,若要控制绑定),另请参阅 网络组件的通知对象。

以下附加驱动程序模型可用于使用特定的硬件技术和体系结构。

技术 说明

可缩放网络

支持将任务卸载到网络适配器的网络技术,例如:

  • Header-Data Split,一种服务,用于将接收的以太网帧中的标头和数据拆分为单独的缓冲区。

  • 接收端缩放,这是一种网络驱动程序技术,可提高多处理器系统上的网络性能。

  • TCP 烟囱卸载,TCP 协议处理的数据传输部分卸载到具有相应功能的网络适配器。

  • TCP/IP 卸载、任务卸载或连接到具有相应功能的网络适配器。

  • 网络直接内核提供程序接口(NDKPI)使内核模式 Windows 组件(如 SMB 服务器和客户端)能够使用独立硬件供应商(IHV)提供的远程直接内存访问(RDMA)功能。

  • 使用泛型路由封装(NVGRE)任务卸载的网络虚拟化,因此可以使用泛型路由封装(GRE)封装数据包:

    • 大量发送卸载 (LSO)
    • 虚拟机队列 (VMQ)
    • 传输 (Tx) 校验和卸载
    • 接收 (Rx) 校验和卸载

虚拟化网络

支持 Hyper-V 虚拟化环境的网络技术,如下所示:

无线网络

包含 Native 802.11 Wireless LAN 的网络功能。

网络模块注册器

一个系统设施,允许驱动程序将网络模块相互连接。

Winsock 内核

内核模式网络编程接口 (NPI)。

IP 帮助程序

一组实用工具函数,使驱动程序能够检索和修改有关本地计算机的网络配置的信息。

Windows 筛选平台标注驱动程序

内核模式接口,用于对网络数据进行深入检查、数据包修改、流修改和日志记录。

系统区域网络

一种使用 Windows 套接字直通来支持高性能、面向连接的网络的网络连接。

远程 NDIS (RNDIS)

一个类规范,用于定义基于 USB 总线的系统提供的与总线无关的消息集。