无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 734|回复: 26
打印 上一主题 下一主题

[讨论] 为Windows 7 x64提供WdiWiFi支持

  [复制链接]
跳转到指定楼层
1#
发表于 6 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  一、背景
  众所周知,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的全部潜力,至少处于“能用”的水平。
  
  四、除厂商Wi-Fi驱动外的其他模块链接
  ht tps://wwdk.lanzouu.com/i3wMU39nhp7a
  密码:17bh
  压缩包密码:是下面这个网帖中最核心的内容,如有字母全部为大写字母,长度为36位。
  网帖地址请自行解密:
  N:92E8AFF2C0034467C956EBEACCEE9E10B40426B51DF49D434E0160C59974BA31
  E: 10001
  C1: 75983BE7532072C00EA90745A494D77F927FF253D191BD5B69DB401959082D84
  C2: 8A2EC357526ECD8B3D569A6F00E03EF404839A569486A4B6E47027903E214DAC
  五、声明
  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)注意校验和/签名。

点评

感谢分享!  发表于 6 天前
2#
发表于 5 天前 | 只看该作者
来看大神!厉害
回复

使用道具 举报

3#
发表于 5 天前 | 只看该作者
进来思考一下
回复

使用道具 举报

4#
发表于 5 天前 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 5 天前 | 只看该作者
感谢分享!
回复

使用道具 举报

6#
发表于 5 天前 | 只看该作者
感谢分享!
回复

使用道具 举报

7#
发表于 5 天前 | 只看该作者
来看看
回复

使用道具 举报

8#
发表于 5 天前 | 只看该作者
真牛啊!
回复

使用道具 举报

9#
发表于 5 天前 | 只看该作者
谢谢大神的无私奉献
回复

使用道具 举报

10#
发表于 5 天前 | 只看该作者
感谢楼主分享
回复

使用道具 举报

11#
发表于 5 天前 | 只看该作者
有点折腾啊,300M的网卡,照理跑100M应该没有问题啊,测试怎么这么低

点评

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

使用道具 举报

12#
 楼主| 发表于 5 天前 | 只看该作者
2012andyle113 发表于 2025-10-30 09:52
有点折腾啊,300M的网卡,照理跑100M应该没有问题啊,测试怎么这么低

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

使用道具 举报

13#
发表于 5 天前 | 只看该作者
支持折腾!
回复

使用道具 举报

14#
发表于 5 天前 | 只看该作者

感谢分享
回复

使用道具 举报

15#
发表于 5 天前 | 只看该作者
大师nb!!!!!!
回复

使用道具 举报

16#
发表于 5 天前 | 只看该作者
感谢分享!
回复

使用道具 举报

17#
发表于 5 天前 | 只看该作者
对这没有研究,来观摩
回复

使用道具 举报

18#
发表于 5 天前 | 只看该作者
感谢分享
回复

使用道具 举报

19#
发表于 5 天前 | 只看该作者
学习一下
回复

使用道具 举报

20#
发表于 5 天前 | 只看该作者
已经收下了
回复

使用道具 举报

21#
发表于 5 天前 来自手机 | 只看该作者
感谢楼主分享
回复

使用道具 举报

22#
发表于 5 天前 | 只看该作者
来学习下
回复

使用道具 举报

23#
发表于 5 天前 | 只看该作者
感谢分享!
回复

使用道具 举报

24#
发表于 5 天前 | 只看该作者
大神!厉害
回复

使用道具 举报

25#
发表于 5 天前 | 只看该作者
感谢分享
回复

使用道具 举报

26#
发表于 4 天前 | 只看该作者
感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-11-4 08:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表