windows网络适配器驱动开发-WiFiCx Wi-Fi 7 功能要求(二)

AP发现------MLO能力的识别与标记

在扫描阶段,驱动程序负责将原始的信标(Beacon)和探测响应(Probe Response)帧内容传递给Windows。Windows操作系统会解析这些帧中包含的多链路元素(Multi-Link Element)以及精简邻居报告(RNR,Reduced Neighbor Report)信息元素(IE)。若检测到AP宣告了MLO能力(例如通过Multi-Link Element中携带的MLD MAC地址和链路配置),Windows会将该AP标记为"支持MLO",并在后续连接决策中将其作为MLO候选。

驱动程序在此过程中无需额外处理,但必须确保原始帧的完整性和正确性,不得过滤或篡改任何IE。尤其在6GHz频段,RNR IE对于发现共置的2.4/5GHz AP至关重要,驱动程序应确保这些信息被正确传递至上层。

多链路连接设置------MLO的启用与约束

当用户或系统策略触发连接请求时,Windows会通过OID_WDI_TASK_CONNECT任务下达连接参数。该任务的WDI_TLV_CONNECTION_SETTINGS结构中包含一个关键标志------MloConnectionSupported。该标志指示驱动程序是否可以将此连接作为MLO连接来建立。

若MloConnectionSupported为TRUE,驱动程序应优先尝试使用MLO方式连接至目标AP。但必须遵守以下约束:驱动程序只能使用WDI_TLV_RSNA_AKM_CIPHER_SUITE中指定的AKM和密码对进行连接,不得协商其他未列出的套件。唯一的例外情况是身份验证或密码套件不属于RSNA IE(Robust Security Network Information Element)范畴(例如,某些供应商特定的预认证机制),此时可以灵活处理。

对于基于SAE(Simultaneous Authentication of Equals)的连接,Windows会在SAE提交请求(Commit Request)阶段就携带AKM和密码信息,告知驱动程序在后续关联请求中应使用的安全套件。这种提前协商机制避免了多次往返交换能力信息,加速了连接建立过程。

身份验证流程------SAE与MLO的融合

在Wi-Fi 7 MLO场景中,SAE身份验证需要额外传递链路信息,以支持多条链路的同步认证。具体而言,Windows在调用OID_WDI_SET_SAE_AUTH_PARAMS时,会在WDI_TLV_SAE_COMMIT_PARAMS中设置AKM和密码套件,这些值通过WDI_TLV_RSNA_AKM_SUITE和WDI_TLV_CIPHER_ALGORITHM TLV传递。驱动程序在稍后构建关联请求帧时必须使用这些值,确保与AP协商一致。

当驱动程序需要向操作系统请求SAE身份验证参数时(通过NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED指示),必须正确填充以下字段:

  • BSSID(通过WDI_TLV_BSSID):设置为目标AP的链路MAC地址(即该特定链路的BSSID)。

  • LocalMloLinkBssId(通过WDI_TLV_MLO_LINK_BSSID):设置为本地对应的链路MAC地址,以便AP能够识别该链路属于同一个MLD。

此外,当连接MLO时,驱动程序在构造和发送身份验证帧时,必须包含适当的多链路IE(Multi-Link IE),其中应列出参与该MLO会话的所有链路的BSSID和操作参数。缺失或错误的Multi-Link IE会导致AP拒绝认证。

相关推荐
爱吃火鸡面呀13 小时前
Spark RDD 行动算子(Action)详解
windows·ajax·spark
dlhto13 小时前
Windows 使用 Rufus 制作 AlmaLinux 10.2 启动 U 盘:从 ISO 下载到服务器安装
运维·服务器·windows
一直C13 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
小矮强14 小时前
输入凭证也没用?Windows 共享文件夹“来宾访问被安全策略阻止”
windows·经验分享
小此方14 小时前
Linux网络(三十三):告别O(n)噩梦:从select/poll的挣扎到epoll红黑树+回调的降维打击,一文打通IO多路复用
linux·网络·驱动开发
skywalk816315 小时前
Virtualbox 从7.2.20降级到7.2.18 @FreeBSD系统
windows·virtualbox·freebsd
DogDaoDao15 小时前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
长不大的杨瑞杰15 小时前
Windows 安装 OpenCode v2:原生、WSL、Desktop 怎么选?完整配置与避坑指南
人工智能·windows·ai agent·opencode
Misnice16 小时前
Python 内置函数大全
开发语言·windows·python