无忧启动论坛
标题: 解决Windows 7在12代之后平台睿频不生效的另一种思路——修改acpi.sys [打印本页]
作者: ctx 时间: 4 天前
标题: 解决Windows 7在12代之后平台睿频不生效的另一种思路——修改acpi.sys
Windows 7安装在在12代之后平台中,会出现睿频不生效的问题,Canon-控大佬已提出修改BIOS并刷入的解决方案,详见ht tps://bbs.pcbeta.com/viewthread-1992659-1-8.html(教程帖)。经过艰苦卓绝的分析,本人现基于教程帖中提出的原理,提出另一种解决方法——修改acpi.sys(不需要刷BIOS)。
1. 原理分析
Intel睿频是微软驱动intelppm.sys控制的,要使睿频生效,第一需要让系统识别出CPU设备,第二需要将这个驱动安装到CPU设备上。
出现睿频不生效的情况,都有一个共同特点,就是“设备管理器”中不显示CPU设备(例如下图),即上面第一点不成立。而Windows 10中是显示的(例如下图),修改BIOS后也会显示。所以修改acpi.sys的思路就是,找到不能识别CPU设备的具体原因,针对性地修改,使系统识别出CPU设备,才能安装intelppm.sys驱动。
NT操作系统的设备树是通过枚举方式建立的,从顶部的“Microsoft ACPI-Compliant System”(驱动程序是acpi.sys)开始,每个设备先被操作系统启动,然后不断枚举出它下级设备,对下级设备重复“启动-枚举下级”的递归操作,直到所有的设备都没有下级设备。在设备管理器的“依连接排序设备”方式下可以看到这一结构。“Microsoft ACPI-Compliant System”的下级设备,是由BIOSACPI表中的DSDT表规定的,根据教程帖,从12代平台开始,DSDT表中普遍采用“ACPI0007”的Device方式定义CPU设备,取代了之前Processor方式定义,这样的定义方式,不能被Win 7 acpi.sys报告给系统。
在程序层面分析,acpi.sys对于“MicrosoftACPI-Compliant System”设备和每个枚举到的直接下级设备会建立一个DEVICE_EXTENSION结构体(详见acpi.sys PDB,还有nt5src中有XP版本作为参考),其中结构体第一个成员是Flags(标志值定义在nt5src中)。经过IDA和Windbg分析调试,结合nt5src分析,参考Win 10 acpi.sys的处理,可以得知无论Win 7还是Win 10的acpi.sys,发现采用“ACPI0007”的Device方式定义的CPU设备,都会像Processor定义的一样,设置DEV_CAP_PROCESSOR标志,记录该设备是一个CPU。导致Win 7未能上报设备的真正原因,是Win 7下在Flags中错误地设置了DEV_TYPE_NOT_PRESENT标志。Win 7 acpi.sys在ACPIGetProcessorStatus函数中,对于非Processor定义的设备类型,不能正确地处理,误认为CPU不存在,设置DEV_TYPE_NOT_PRESENT标志,进而导致在ACPIDetectPdoDevices函数中跳过已经识别到的CPU设备,在上报给操作系统已枚举到的设备时,去除了CPU设备;而Win 10 acpi.sys会正确地取消DEV_TYPE_NOT_PRESENT标志,把实际存在的CPU设备上报操作系统。
因此,在Win 7 acpi.sys的ACPIGetProcessorStatus函数中,把不符合Processor定义的2处跳转取消掉,即可使CPU设备上报到操作系统;进一步,在ACPIProcessorGetInitialApicId中也有2处跳转需要取消,确保CPU设备驱动正常运作。总共需要对acpi.sys修改4处。
2. 修改地点
基于版本号为6.1.7601.24056的acpi.sys进行修改。
第一,在ACPIGetProcessorStatus函数的F3E0和F402偏移处,跳转指令改为两个nop。
第二,在ACPIProcessorGetInitialApicId函数的3F703和3F73D偏移处,跳转指令改为两个nop。
共计修改4条指令8个字节,然后需要重新计算校验和,签名后又会重新写入签名偏移。
3. 使用方法及效果
本人没有可用证书,只能生成测试签名版本的acpi.sys,可在这里下载:
ht tps://wwdk.lanzouu.com/itwmT383o09i
密码:dyes
打开测试模式,使用它替换C:\Windows\system32\drivers\下的原版acpi.sys(原版务必备份好),重启,可以识别到CPU设备,系统根据C:\Windows\inf\cpu.inf自动安装intelppm.sys驱动。如果此时出现代码37,再重启一次电脑即可。
B760m + i5-12490F运行良好,跑分正常,电压合理,效果:
4. 说明
(1) 本方法测试样本较少,有意测试的请先做好数据备份,责任自负。
(2) 修改了哪里,用文件比较工具即可判断出来。
(3) 如果觉得好用,又有可用证书,请自行对其签名,免于开启测试模式。
(4) 如果条件合适,考虑把前期测试的AC9560/ Wi-Fi 6 / Wi-Fi 6E无线网卡在Win 7中使用的相关原理公布出来。
(5) 特别感谢Canon-控大佬和SMXDIY测试组前期的辛勤分析和技术分享。
作者: 2012zcsh 时间: 4 天前
谢谢分享
作者: 面条渣渣 时间: 4 天前
学习学习,感谢分享
作者: zhanghao0242 时间: 4 天前
本帖最后由 zhanghao0242 于 2025-10-10 22:26 编辑
太6了, win7没什么收益了。 就是纯技术交流。
作者: a66 时间: 4 天前
好思路
作者: hahaljk 时间: 4 天前
收藏一下,满满技术力
作者: pischp1 时间: 4 天前
支持
作者: downer001 时间: 4 天前
楼主真乃神人也!感谢分享。
作者: dawensger 时间: 4 天前
思路清晰
作者: 邪恶海盗 时间: 4 天前
我X,这么牛A...
二○二五年十月十日
作者: 沐小然 时间: 3 天前
感谢分享
作者: promrhxq 时间: 3 天前
感谢分享好经验
作者: wjqok 时间: 3 天前
学习一下,一直用win7,现在5800x不显示cpu
作者: wu733 时间: 3 天前
技术控,大力支持。
不喜欢Win7的勿进即可,进来了就别泼冷水,你喜欢Win11,也大有人喜欢Win7,萝卜白菜各有所爱也!
作者: zjyangjian 时间: 3 天前
感谢大神!谢谢
作者: rchc08 时间: 3 天前
膜拜大神
作者: KIM3298 时间: 3 天前
谢谢分享
作者: wang1126 时间: 3 天前
谢谢楼主分享
作者: 面条渣渣 时间: 3 天前
学习学习,感谢分享
作者: lily9718 时间: 3 天前
谢谢分享
作者: 燕飞龙 时间: 3 天前
感谢分享
作者: wxgwxg 时间: 3 天前
xp:扶我起来,我还能再战!
作者: 蘭蘭 时间: 3 天前
学习来了,谢谢!
作者: xuxiaojie120 时间: 3 天前
谢谢分享 学习下
作者: 吕布骑蚂蚁 时间: 3 天前
感谢分享
作者: martin313 时间: 3 天前
恋曲 Windows 7
作者: bobylinger04 时间: 3 天前
这是准备把win7当传家宝吗
作者: wn168cn@163.com 时间: 3 天前
廉颇虽老 尚能斗食 支持分享
作者: cc2025 时间: 3 天前
大佬厉害
作者: cxywjb 时间: 3 天前
厉害了,谢谢楼主
作者: 2012andyle113 时间: 3 天前
这个技术流操作可以
作者: it323 时间: 3 天前
因软件支持问题放弃win7很久了,感谢楼主分享经验!
作者: friend8179 时间: 3 天前
666,又续上了。。。。
作者: ctx 时间: 3 天前
xp不用修改,已有人根据nt5src进行修补,我见到过12600K处理器安装xp的。
作者: ctx 时间: 3 天前
xp64位下运行一些软件,还是可以的,浏览器,solidworks,微信等,都能行,速度快
作者: ctx 时间: 3 天前
根据教程帖,AMD平台睿频由BIOS控制,不显示也无伤大雅。
作者: dyt 时间: 3 天前
可以考虑装 win3.1 看看。
作者: guimei5320 时间: 3 天前
这个是真的🐂
作者: test2333 时间: 3 天前
您好,我这边似乎看不到您在帖子首页里面的两张图,对应的位置是一片空白,用edge和IE均如此,如果您那边方便的话,可否将图片放到word文档中以附件或网盘形式上传呢?谢谢
作者: ctx 时间: 3 天前
可以,晚上回去搞
作者: wjqok 时间: 3 天前
win7,百分浏览器,显示正常
作者: IT小森 时间: 3 天前
牛啊
作者: valen21 时间: 3 天前
干货技术文章,厉害了
作者: hzyry2046 时间: 3 天前
大佬nb,谢谢分享!
作者: guong 时间: 3 天前
学习了 赞一个!
作者: wn168cn@163.com 时间: 3 天前
思路很好
作者: handsome_xiang 时间: 3 天前
感谢分享!
作者: zjyangjian 时间: 3 天前
自己尝试了一下,自签名测试模式下正常显示CPU。睿频也正常了。如果没改前12490F才只能2.9G
作者: ctx 时间: 3 天前
帖子Word版和图片:
ht tps://wwdk.lanzouu.com/iO3h5385vvih
密码:9hwv
作者: ebaqiang 时间: 前天 05:05
有点用,先保留
作者: gamer-no-f 时间: 前天 08:34
前排支持
作者: aduge38 时间: 前天 08:38
厉害了,感谢分享
作者: fegr 时间: 前天 14:14
谢谢楼主分享
作者: 面条渣渣 时间: 昨天 13:11
学习学习,感谢分享
作者: langyun 时间: 昨天 14:28
精神支持
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) |
Powered by Discuz! X3.3 |