ctx 发表于 2025-10-29 23:33:27

为Windows 7 x64提供WdiWiFi支持

本帖最后由 ctx 于 2026-8-11 14:30 编辑

说明:该帖里有免开测试模式版本。https://bbs.wuyou.net/forum.php?mod=viewthread&tid=452338&extra=page%3D1&mobile=2  一、背景  众所周知,Intel原生支持Windows7 x64的网卡最高至AC8265,后续的新产品,如AC9000系列、AX系列、BE系列,官方仅提供Windows10/11驱动,未提供Windows 7驱动,导致Windows7无法使用Wi-Fi6无线网卡等新产品。其他厂商情况类似,Realtek情况稍好,提供了支持Windows 7的RTL8832系列。要使新网卡在Windows 7中正常使用,需要加入高版本驱动加载和运行所需的WdiWiFi支持。  二、原理  引用  WLAN设备驱动程序接口(WDI)是适用于Wi-Fi驱动程序的新通用Windows驱动程序模型,同时适用于Windows 10桌面版(家庭版、专业版、企业版和教育版)和Windows 10移动版。  引用结束  其核心模块是WdiWiFi.sys。(注:WDI在Windows 10 1507中版本正式发布,现已过时。)  引用  WiFiCx是在Windows 11中发布的新Wi-Fi驱动程序模型。我们建议您使用WiFiCx来利用最新功能。WDI驱动程序模型现在处于维护模式,仅接收高优先级修复。  引用结束  在Windows 10中,ndis.sys已升级为6.50及以上版本,针对WdiWiFi.sys专门开发了接口函数,通过netio.sys与WdiWiFi.sys互换接口函数(Dispatch函数),实现方式接近于hook。幸运的是,Windows 7的netio.sys足够提供相应支持函数,只需对ndis.sys进行扩展,使其加入hook相关处理;再对WdiWiFi.sys进行处理,使其接受ndis6.20的运行环境,并与Native Wi-Fi模块nwifi.sys协同工作。  WdiWiFi.sys初期和末期版本都需要KMDF1.15方可运行,厂商Wi-Fi驱动也普遍需要至少KMDF1.15版,所以还需移植KMDF1.15或以上版本。  KMDF1.15及以上版本,以及部分其他模块,还需WppRecorder.sys方可正常加载,所以还需移植WppRecorder.sys。  厂商Wi-Fi驱动可能用到Windows7中不存在的API,或者向ndis.sys报告高版本的需求而导致无法注册,还需修改厂商Wi-Fi驱动(多数情况下,修改主要的.sys文件即可,dll扩展模块可改可不改)。  所有内核模块修改后,还需修正签名。  综上所述,要使Windows 7使用无线网卡新产品,必须实现以下处理。  1. 移植Windows 10中的WdiWiFi.sys、KMDF、WppRecorder等内核模块。  2. 修改Windows 7中的ndis.sys。  3. 修改基于WDI开发的厂商Wi-Fi驱动。  三、效果  本人路由器存在瓶颈,未能发挥出AC9560的全部潜力,至少处于“能用”的水平。  https://s21.ax1x.com/2025/10/29/pVxbCIf.png  20260413更新:新路由器TL-WDR7660,速率跑满2x2 MIMO。  https://s41.ax1x.com/2026/04/14/peDD3QK.png  四、除厂商Wi-Fi驱动外的其他模块链接  2026年4月更新,见58楼。之前版本不太稳定,建议删除(链接已删除),改用58楼新的。  C118F50D-391D-45F4-B3D3-11BC931AA56D  五、声明  1. 本帖为原理分析,相关内容和随附二进制文件仅供学习研究之用,请勿用于经济活动。  2. 实操难度较大,风险也较大,不推荐小白折腾。  3. 如果要测试,务必备份好重要文件,并打开测试模式(如有证书可自行签名,免于打开测试模式),责任自负。  4. 不能直接公开提供修改版厂商Wi-Fi驱动,如果对此感兴趣,请对汇编语言、amd64体系和函数调用约定、Windows内核、PE文件结构、NDIS编程等知识深入了解后研讨,此处提供几个思路,后续可能提供一些实例供参考:  (1)注意DriverEntry对security_cookie的处理,避免失败;  (2)注意DriverEntry对KMDF版本的需求,如果需求高于当前运行的KMDF,会失败;  (3)注意调用ndis注册驱动函数时结构体中要求的ndis版本的数据,大于6.20会失败;  (4)选用低版本Windows 10的厂商Wi-Fi驱动,ntoskrnl.exe/ndis.sys中不存在的函数会比较少,易于处理(函数处理常见方法有替换为相同功能的函数、旧版函数、成功返回、失败返回、nop等,或者加区段进行汇编);  (5)注意校验和/签名。

zjyangjian 发表于 2025-10-30 00:19:21

来看大神!厉害

caizhi999999 发表于 2025-10-30 05:33:36

进来思考一下

燕飞龙 发表于 2025-10-30 07:46:53

谢谢分享

it323 发表于 2025-10-30 07:48:46

感谢分享!

肉仔 发表于 2025-10-30 08:29:27

来看看

肉仔 发表于 2025-10-30 08:29:41

真牛啊!

lanlanhu 发表于 2025-10-30 09:07:14

谢谢大神的无私奉献

2012andyle113 发表于 2025-10-30 09:52:10

有点折腾啊,300M的网卡,照理跑100M应该没有问题啊,测试怎么这么低

ctx 发表于 2025-10-30 10:04:00

2012andyle113 发表于 2025-10-30 09:52
有点折腾啊,300M的网卡,照理跑100M应该没有问题啊,测试怎么这么低

AC9560不止300的水平,是我那个路由器是十几年前的,无线速率不超过300,上联口又只有100,所以测出这个效果。其他大佬用自己的设备测试,显示连接速率能到2.4Gbps。部分Wi-Fi7设备也能驱动,关键在于厂商驱动是否采用了WDI模型进行开发。

a66 发表于 2025-10-30 10:22:13

支持折腾!

win98se 发表于 2025-10-30 10:29:31


感谢分享

hzyry2046 发表于 2025-10-30 11:11:54

大师nb!!!!!!

ydbddt 发表于 2025-10-30 11:29:42

感谢分享!

wondaol 发表于 2025-10-30 11:46:17

对这没有研究,来观摩

wonderfully 发表于 2025-10-30 12:21:17

感谢分享

fd8526547 发表于 2025-10-30 13:04:47

学习一下

进士小站 发表于 2025-10-30 13:19:20

已经收下了{:1_186:}

fegr 发表于 2025-10-30 13:24:35

感谢楼主分享

guong 发表于 2025-10-30 14:34:08

来学习下

zyc101 发表于 2025-10-30 15:05:08

感谢分享!

ebaqiang 发表于 2025-10-30 15:31:55

大神!厉害

quan2 发表于 2025-10-30 18:04:21

感谢分享

hushaomin1986 发表于 2025-10-31 04:54:51

感谢分享!

huacuo 发表于 2025-11-5 09:15:20

折腾达人。

AMD8848 发表于 2025-11-5 14:21:53

谢谢分享

xianglang 发表于 2025-11-5 15:27:17

楼主干脆点,直接给出密码啊。

ctx 发表于 2025-11-5 15:37:11

xianglang 发表于 2025-11-5 15:27
楼主干脆点,直接给出密码啊。

考虑到东西不太完善,所以加了一些限制,如果想尝试的话私聊吧,但是解决厂商驱动是使设备正常使用的最后一公里。

flank777 发表于 2025-11-9 09:36:57

不明觉厉{:1_189:}膜拜一下

gskj 发表于 2025-11-15 11:38:45

楼主在Win-Raid论坛上还发布了10代酷睿Q0步进的UHD630驱动与I219(>7)网卡驱动,解决了10代酷睿平台的遗憾。
页: [1] 2 3 4
查看完整版本: 为Windows 7 x64提供WdiWiFi支持