WDI 微型端口驱动程序设计指南

重要

WiFiCx 是在 Windows 11 中发布的新 Wi-Fi 驱动程序模型。 我们建议您使用 WiFiCx 来利用最新功能。 WDI 驱动程序模型现在处于维护模式,仅接收高优先级修复。

WLAN 设备驱动程序接口 (WDI) 是适用于 Wi-Fi 驱动程序的新通用 Windows 驱动程序模型,同时适用于 Windows 10 桌面版(家庭版、专业版、企业版和教育版)和 Windows 10 移动版。 WLAN 设备制造商编写 WDI 微型端口驱动程序来使用 Windows 10 OS 实施。 WDI 使设备制造商能够编写少于以前的本机 WLAN 驱动程序模型的代码。 Windows 10 中引入的所有新 WLAN 功能均需要基于 WDI 的驱动程序。

供应商提供的本机 WLAN 驱动程序继续在 Windows 10 中运行,但功能仅限于开发它们时所针对的 Windows 版本。

此设计指南中记录了 WDI 要求和接口规范。 新模型的主要目标包括:

  • 提高 Windows WLAN 驱动程序的质量和可靠性。
  • 降低当前驱动程序模型的复杂性,进而降低 IHV 驱动程序的复杂性,并降低 IHV 驱动程序开发的总体成本。

本文档的重点是指定 Windows 和 IHV 驱动程序组件之间的 Wi-Fi 操作的流和行为。 它不包括软件接口签名(例如设备驱动程序接口模型)以及有关如何在 Windows 中加载 IHV 组件的详细信息。

设计原则

以下原则指导了此协议的总体模型和设计。

  1. 最大程度地减少主机组件与 IHV 组件/设备之间的流量的非正式性。 这对于总线(如 SDIO)上的实施尤其重要,这种实施本质上是非正式的。
  2. Wi-Fi 功能(尤其是必须以低延迟执行的功能)预计将由设备处理。
  3. 所有监管相关功能都驻留在 IHV 组件中,并由 IHV 控制。
  4. Windows 体验由主机组件和 Windows 操作系统控制。
  5. Windows 能够恢复挂起的设备。 它具有足够的状态来对 IHV 组件重新编程并在 10 秒内恢复。
  6. 需要大量系统内存或快速处理器且不特定于供应商的操作由主机处理。

定义

术语 说明

设备

连接到总线的整个硬件。 一个设备中可以有多个无线电(尤其是 Wi-Fi 和蓝牙)。

Wi-Fi 适配器

实施 Wi-Fi 功能的设备特定部分,如此规范中所述。

端口

表示特定连接的 MAC 和 PHY 状态的对象。

IHV 组成

IHV 开发的软件组件,表示主机的 Wi-Fi 适配器/设备。

主机

使用此规范中所述的接口与 IHV 组件交互的主机端 Microsoft/操作系统软件。

上边缘驱动程序 (UE)

UE 指本文档中称为 WDI 的 WdiWiFi 驱动程序。 UE 和下边缘 (LE) IHV 驱动程序合并为完整的 NDIS 微型端口驱动程序。 UE 实施核心 Wi-Fi 逻辑。

下边缘驱动程序 (LE)

LE 是指下边缘的 IHV 驱动程序。 LE 和 UE 组合成完整的 NDIS 微型端口驱动程序。 LE 实施总线和硬件特定的功能。

功能级别重置 (FLR)

功能级别重置,如 PCIe 规范中所示。 此术语是指功能的重置,而不是可能具有复合功能的完整设备的重置。 此类范围的重置不会影响同一设备上的其他功能。

平台级别重置 (PLR)

平台级别重置。 此重置方法会影响设备上的所有功能。 在设备上构建多个功能非常受欢迎,因为可减少成本和占用空间。 例如,蓝牙通常是在芯片上使用 Wi-Fi 构建的。 但是,此类重置方法会重置设备上的所有功能单元。

重置恢复 (RR)

RR 是指重置和恢复的事件序列。

对于 FLR,这包括:

  • 向 NDIS 发出的请求,这会将请求转发到总线以重置 Wi-Fi 功能。
  • 驱动程序恢复固件上下文。
  • 如果在重置之前连接了接入点,则为与该接入点的重新连接。

对于 PLR,这包括:

  • 向 NDIS 发出的请求,这会将请求转发到总线。 总线会与 PnP 交互,以意外移除设备。
  • 设备的重新枚举。
  • 重新建立设备堆栈。
  • Wi-Fi 已重启并重新连接。

WDI 命令

UE 发送 WDI OID 并调用 LE 回调。 所有这些均称为 WDI 命令。

MAC 地址随机化

为了改善 Windows 10 用户的隐私,在某些情况下(例如在连接到特定 Wi-Fi 网络之前或在特定条件下启动扫描时),将使用配置的 Wi-Fi MAC 地址。 这仅适用于工作站端口。 系统可确保适当地使用随机化,因此不会中断重要的连接方案。 系统通过在发出扫描或连接命令之前发出 OID_WDI_TASK_DOT11_RESET 命令来管理地址更改。 重置命令参数包括可选的 MAC 地址参数。 如果该参数存在,则会将 MAC 地址重置为指定的值。 如果不存在该地址,则会将 MAC 地址保留为当前值。 配置随机化 MAC 地址时,操作系统使用为 IEEE802 地址定义的“本地管理”格式。

ECSA

扩展通道切换公告。

WDI 微型端口驱动程序参考