CPU MSR Handler - 获取 CPU 温度信息和控制热降频温度

[复制链接]
131 |10
发表于 2025-11-19 18:06:26 | 显示全部楼层 |阅读模式
Lourdle CPU MSR Handler - 获取 Intel CPU 温度信息和控制热降频温度

我的笔记本有个问题,玩游戏一会儿 CPU 直接降频到 0.2 GHz。卡到完全玩不了。我都几个月没在这台电脑上打游戏了。前段时间忙别的事情,半个月前把电脑拿到店里请人帮我修顺便清灰换硅脂,等了一周告诉我好了,我现场要求跑个甜甜圈,结果等了两分钟又出问题了。
后来,我发现,只要温度超过 85 °C,就会降频,当降低到 84°C 及以下,就会恢复。在了解到英特尔 CPU 温控信息是保存在 MSR 寄存器后,我就自己写了个驱动和应用。因为虚拟机的温控无效,我都是直接在物理机测试,还把电脑弄蓝屏了一次。现在功能应该没问题了,还加上了 SEH,就算出问题应该也不会蓝屏了。我把温控拉高到 90°C,就没有再出现降频的问题了。
警告

MSR(Model Specific Register)是 Intel CPU 内部的一组特殊寄存器。开发者可通过驱动访问这些寄存器,实现读写底层设定,如温度阈值、频率限制等。此驱动仅适用于基于 MSR 寄存器温控的 CPU。AMD 不是使用 MSR 寄存器保存温控信息的,而且我也没用 AMD CPU 测试过,不保证其质量。因此仅支持 Intel x64 CPU。修改 CPU 热降频温度有 CPU 温度过高的风险。请自行承担使用软件可能所造成的一切风险。
安装

下载地址:https://pan.baidu.com/s/1nhVyKi6KDFeUNJLj9IXcRw?pwd=cm85 提取码: cm85。
由于 Lourdle CPU MSR Handler 驱动没有微软签名,首次使用时需要进行一系列准备工作来允许加载自定义驱动。

  • 关闭 UEFI 安全启动
    在 BIOS 设置中将安全启动(Secure Boot)关闭。不同主板品牌设置略有不同,详情请参考主板或笔记本说明书。
  • 安装自签名根证书
    将 RootCA.cer 的 Lourdle Root Certificate Authority 2025 根证书导入“受信任的根证书颁发机构”(Trusted Root Certification Authorities)。
    可通过双击证书文件,
    选择安装到本地计算机的受信任根颁发机构。
    安装后直接以管理员运行 ldmsrhdr.exe,不出问题的话 Windows 已经信任证书且能看到完整证书链了。
  • 启用测试签名模式
    以管理员权限打开 CMD,输入如下命令:
    1. bcdedit /set testsigning on
    复制代码
    然后重启电脑。重启后,桌面右下角会出现“测试模式”字样,表示驱动可以被加载。
  • 安装驱动和软件
    下载并解压 ldmsrhdr.exe(主程序)以及配套驱动文件和证书。
    在 CMD 中(以管理员权限),运行如下命令完成驱动安装并启动服务:
    1. ldmsrhdr.exe driver-service install
    复制代码
    若驱动安装成功,后续即可使用各项功能。
    如果没有开启测试签名,则无法启动驱动。此时只需要启用测试签名模式并重启即可自动启动服务。
    当然也可以直接右键 ldmsrhdr.inf 安装,只是这样不会启动服务,需要手动用 ldmsrhdr driver-service start 启动或者重启电脑。
    核心功能介绍

    Lourdle CPU MSR Handler 的核心功能,是通过用户态库调用驱动,操作 Intel CPU 中用于热管理的 MSR(Model Specific Register)寄存器,从而读取、修改 CPU 温度阈值等参数,实现更加灵活的温控控制。主要支持以下特性:
      获取所有核心/单核心当前信息和总温度信息
      查询或修改 CPU 热降频温度阈值(TCC Offset)
    • 检测和锁定温控阈值防止恶意或意外改动

      注意,锁定后任何软件都无法修改温度阈值了,直到 CPU 复位(重启)。
    • 管理驱动服务的安装、启动、停止、卸载
      比如,假设你需要将所有核心的 TCC Offset 设置为 10°C(即 Tjmax – 10°C 时才开始降频),只需运行:
      1. ldmsrhdr.exe set-temp-target offset=10
      复制代码

也可针对单个核心设置,或检测、锁定已设置参数。其实对于多核 CPU,只需要设置一个核心即应用到整个 CPU 了。但不指定 CpuId 直接应用到所有核心也没问题。

提醒:更高的 TCC Offset 阈值虽然可避免频繁降频,但也意味着 CPU 会在更高温度下运行。请务必确保散热良好,否则会有过热、芯片寿命减少等风险。
详情请运行 ldmsrhdr.exe 见帮助信息。

管理员权限运行

    ldmsrhdr.exe 默认 UAC 执行级别为 highestAvailable,即在普通用户下直接运行不会弹出提权窗口,而管理员用户下自动提升。如果你需要进行写操作(如set-temp-target),请 ldmsrhdr.exe 以管理员身份运行。
用户模式开发说明

Lourdle CPU MSR Handler 支持通过用户模式 DLL 进行开发。用户模式控制台就基于此。你可以基于已提供的导入库和头文件,方便地集成到自己的工具中,无需重复完成底层的驱动操作。且该 DLL 属于 Native 子系统,仅依赖 ntdll,不依赖标准 Windows 用户模式 API(如 kernel32.dll、user32.dll 等)。这意味着:

  • 适用于 Native 应用程序
    能直接在 Native 子系统(如一些低级服务)中使用,无需任何 Win32 子系统支持;
  • 仅依赖 NTDLL
    与普通 DLL 不同,不需要链接 CRT、标准 Win32 API,只需系统自带的 ntdll.dll 即可运行,兼容性良好;
  • 适合专业级集成
    适用于开发高权限的系统级工具和底层控制程序,也方便嵌入系统维护、硬件诊断场景。
管理员权限要求

    读取权限:普通用户即可操作(例如获取温度、读取寄存器等),无需 UAC 提升;写入权限:涉及更改 CPU 设置,必须在以管理员身份启动的进程下运行,否则相关功能会返回权限不足错误。
开发步骤


  • 包含头文件并链接 DLL/导入库
    在你的 C/C++ 项目中包含头文件、链接导入库(LIB),即可调用相关 API。
  • 打开设备时指定访问权限
    1. HANDLE Handle = nullptr;
    2. NTSTATUS status = OpenHandler(&Handle, /* ReadAccess = */ true, /* WriteAccess = */false);
    复制代码
    编程调用顺序
      根据需要,获取温度信息、调整目标温度或锁定参数,写入操作时请确保具有管理员权限;
    • 使用完毕及时关闭句柄,避免资源泄漏。
      1. LDMSRHDR_TOTAL_STATUS TotalStatus = { 0 };
      2. status = GetTotalStatus(Handle, &TotalStatus);
      3. CloseHandler(Handle);
      复制代码

常见问题与注意事项

    驱动未加载/未签名警告
      请确保已关闭安全启动、“测试模式”正确开启,且根证书已导入,否则驱动无法加载。驱动必须先启动 (ldmsrhdr.exe driver-service install 或 start),否则 DLL 接口无法正常访问底层硬件。
    权限不足报错
      执行写入操作必须“以管理员身份运行”,请检查当前进程权限。若通过脚本调用相关命令,需保证脚本运行环境有管理员权限。
    控制台程序运行库要求
      ldmsrhdr.exe(用户模式控制台程序)基于 Microsoft Visual C++ 编译,须安装 MSVC140(即 Visual Studio 2015-2022 的运行时库)。如未安装,执行时会提示缺失运行时库(如vcruntime140.dll)。请确保你的 Windows 系统已安装 VC++ 2015-2022 Redistributable(可在微软官方页面下载),否则可能出现运行异常或启动失败。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2025-11-19 18:07:11 | 显示全部楼层
这没办法,驱动不是想加载就加载的,必须创建内核服务才能运行。不用 Inf 驱动直接加载 sys 也要创建内核服务,这样安装 Inf 的卸载还更方便,因为你自己还可以用 pnputil 或 dism 或者其它管理驱动的工具比如 Dism++ 卸载。
回复

使用道具 举报

发表于 2025-11-19 18:08:00 | 显示全部楼层
占楼备用
回复

使用道具 举报

发表于 2025-11-19 18:08:13 | 显示全部楼层
也就是这颗CPU工厂设定到85℃就降频,你通过软件设置成90℃降频。
回复

使用道具 举报

发表于 2025-11-19 18:08:35 | 显示全部楼层
这个太实用了,尤其是玩大型游戏或者大型数据处理的用户。
回复

使用道具 举报

发表于 2025-11-19 18:08:57 | 显示全部楼层
感觉有点风险,备用
回复

使用道具 举报

发表于 2025-11-19 18:09:08 | 显示全部楼层
第一步未签名的驱动就得劝退多少人

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2025-11-19 18:10:01 | 显示全部楼层
用的洋垃圾,超过70度就蓝屏了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2025-11-19 18:10:06 | 显示全部楼层
这个太实用了,尤其是玩大型游戏或者大型数据处理的用户
回复

使用道具 举报

发表于 2025-11-19 18:10:17 | 显示全部楼层
感谢大佬分享, 支持一下!
回复

使用道具 举报

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

本版积分规则

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