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

重要

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

WLAN 设备驱动程序接口 (WDI) 是适用于 Wi-Fi Windows 10 驱动程序的新通用 Windows 驱动程序模型,适用于桌面版 (Home、Pro、Enterprise 和教育版) 和 Windows 10 移动版。 WLAN 设备制造商编写 WDI 微型端口驱动程序,以使用 Windows 10 OS 实现。 与以前的本机 WLAN 驱动程序模型相比,WDI 使设备制造商能够编写更少的代码。 Windows 10 中引入的所有新 WLAN 功能均需要基于 WDI 的驱动程序。

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

本设计指南中记录了 WDI 要求和接口规范。 新模型的关键目标是:

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

本文档的重点是指定在驱动程序和 IHV 驱动程序组件Wi-Fi操作Windows流和行为。 它不包括软件接口签名 (例如,设备驱动程序接口模型) 以及如何在 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 和 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发出命令,以管理地址更改。 重置命令参数包括可选的 MAC 地址参数。 如果参数存在,MAC 地址将重置为指定值。 如果不存在,MAC 地址将留到当前值。 配置随机 MAC 地址时,操作系统使用为 IEEE802 地址定义的"本地管理"格式。

ECSA

扩展通道交换机公告。

WDI 微型端口驱动程序参考