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

重要

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

WDI) (WLAN 设备驱动程序接口是适用于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)上的实现尤其重要,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 是指 WdiWiFi 驱动程序,在本文档中称为 WDI。 UE 和 Lower Edge (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 命令来管理地址更改。 reset 命令参数包括可选的 MAC 地址参数。 如果参数存在,则 MAC 地址将重置为指定的值。 如果不存在,MAC 地址将保留为当前值。 配置随机 MAC 地址时,操作系统使用为 IEEE802 地址定义的“本地管理”格式。

ECSA

扩展通道切换公告。

WDI 微型端口驱动程序参考