PancakeBC/MSIFanTest
GitHub: PancakeBC/MSIFanTest
实验性的 C# 工具,通过 MSI WMI 接口在 MSI Modern 笔记本上实现独立于性能模式的高级风扇曲线控制和 Cooler Boost 开关。
Stars: 0 | Forks: 0
# MSI Modern Fan Control
实验性的 C# 实用工具,通过 MSI 已安装的 WMI 接口控制选定的 MSI Modern 笔记本电脑上的风扇行为。
创建此项目是为了启用自定义 Advanced 风扇曲线和 Cooler Boost,同时保持当前选择的 MSI 性能模式(包括 Balanced 模式)。
## 测试配置
- 笔记本电脑:MSI Modern 15 A11SB
- CPU:Intel 11 代 U 系列
- GPU:NVIDIA GeForce MX450
- MSI Base Module DLL:`1.0.2305.2401`
- WMI 接口:`MSIWMIACPI2`
- WMI 主要版本:`2`
- 目标框架:.NET Framework 4.8
- 目标平台:x86
其他 MSI 型号可能会使用不同的 WMI 命令、EC 寄存器、风扇表或固件行为。
## 功能
- 读取由 MSI Center 保存的 `High_Fan` 曲线。
- 应用该曲线,而不会刻意更改当前活动的性能模式。
- 启用和禁用 Advanced 风扇模式。
- 独立启用和禁用 Cooler Boost。
- 读取 CPU 和 GPU 风扇转速 (RPM)。
- 显示当前存储的风扇曲线。
- 备份原始风扇配置。
- 恢复原始曲线和自动风扇模式。
## 工作原理
该实用工具使用计算机上已安装的 MSI DLL。本仓库不包含 MSI 二进制文件。
在测试的笔记本电脑上观察到的行为:
- `Get_Fan` / `Set_Fan`,参数 `1`:CPU 风扇表。
- `Get_Fan` / `Set_Fan`,参数 `2`:GPU 风扇表。
- 每个风扇有六个可编程值。
- EC 地址 `0xD4`,位 6:Advanced 风扇模式。
- EC 地址 `0x98`,位 7:Cooler Boost。
- `Get_Fan`,参数 `0`:当前风扇转速数据。
该实用工具仅更改风扇控制。它不会刻意调用 MSI 的性能模式功能。
## 要求
- 兼容的 MSI 笔记本电脑。
- 已安装 MSI Center 或 One Dragon Center。
- .NET Framework 4.8。
- 管理员权限。
- MSI 软件安装在预期的默认文件夹中。
该程序目前会加载:
```
C:\Program Files (x86)\MSI\One Dragon Center\Base Module\API_NB_Base Module.dll
```
其 MSI 依赖项也必须存在于已安装的 MSI 软件文件夹中。
## 构建并运行
以管理员身份打开 PowerShell:
```
cd "C:\path\to\MSIFanTest"
dotnet restore
dotnet run
```
## 菜单
```
1 = Apply High_Fan to the currently active profile
0 = Restore original curves and automatic fan mode
2 = Monitor CPU/GPU RPM for 30 seconds
3 = Show firmware curves, Advanced state and Cooler Boost state
4 = Enable Cooler Boost
5 = Disable Cooler Boost
Q = Exit
```
## Balanced 模式下的自定义风扇曲线
1. 打开 MSI Center。
2. 选择 High Performance。
3. 打开 Advanced 风扇配置。
4. 配置并保存所需的 CPU 和 GPU 曲线。
5. 返回 Balanced 模式。
6. 关闭 MSI Center。
7. 以管理员身份运行此实用工具。
8. 选择选项 `1`。
在 MSI Center 中再次更改场景可能会重置风扇模式。
## 实验结果
在测试的 MSI Modern 15 A11SB 上观察到的结果:
### Balanced(带自动风扇控制)
```
CPU fan: approximately 2,500–3,400 RPM
GPU fan: 0 RPM while idle
```
### Balanced(带 Advanced 风扇控制)
```
CPU fan: approximately 5,000–5,200 RPM
GPU fan: approximately 4,285–4,324 RPM
```
### Balanced(带 Cooler Boost 风扇控制)
```
CPU fan: approximately 7,750 –8,000 RPM
GPU fan: approximately 7,150 –7,250 RPM
```
在 Advanced 选项中,将所有可调点设置为 `150`,产生的 RPM 与将它们设置为 `100` 大致相同。
这表明该固件接受大于 100 的值,但有效风扇命令在 100 左右达到饱和。其他 MSI 型号可能会有不同的表现。
## 限制
- 仅在一个笔记本电脑型号上进行过测试。
- 没有图形界面。
- 需要管理员权限。
- 使用固定的 MSI 安装路径。
- 固件或 MSI Center 更新可能会改变此行为。
- 备份文件特定于某一台计算机,严禁共享。
- 性能模式的独立性仍需通过受控的基准测试来验证。
## 专有组件
本仓库不分发:
- MSI DLL
- MSI Center 或 One Dragon Center
- 反编译的 MSI 源代码
- 固件二进制文件
用户必须提供其自己的合法 MSI 软件安装。
## 许可证
本仓库中的原始代码在 MIT 许可证下发布。
MSI 产品名称和软件归其各自所有者所有。
标签:WMI, 硬件控制, 笔记本运维, 系统工具, 风扇调速