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

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

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

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

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

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

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

  • NDIS 6.20,在 Windows 7、Windows Server 2008 R2 和更高版本的 Windows 上受支持。 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 网络体系结构和编程注意事项的详细信息,请参阅 Kernel-Mode驱动程序的网络体系结构网络驱动程序编程注意事项

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

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

技术 说明

可缩放网络

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

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

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

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

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

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

  • 使用泛型路由封装的网络虚拟化 (NVGRE) 任务卸载,这样就可以将泛型路由封装 (GRE) 封装的数据包与以下一起使用:

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

虚拟化网络

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

无线联网

包括本机 802.11 无线 LAN 的网络功能。

网络模块注册机构

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

Winsock 内核

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

IP 帮助程序

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

Windows 筛选平台标注驱动程序

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

系统区域网络

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

远程 NDIS (RNDIS)

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