有没有一种Windows标准的方式来从C / C + +做“启动扇子”,“减速”之类的东西?
我怀疑它可能是ACPI,但我是一个虚弱的人,不能读这种文件。
编辑:例如,Windows 7允许您select电源计划选项,如“被动散热”(仅当事物变热时)与“主动散热”(保持CPU主动冷却?)。 看来操作系统确实有一种方法来统一控制粉丝。
目前我正在开展一个项目,其中包括控制电脑爱好者。 基本上,球迷是由你的电脑的superIO芯片控制的。 我们直接使用端口映射IO访问芯片,从那里我们可以到达逻辑风扇设备。 使用端口映射IO需要代码在内核模式下运行,但是Windows不提供通用端口IO的任何驱动程序(有充分的理由,因为它是一个非常强大的工具),所以我们编写了自己的驱动程序,并使用它。
如果你想要走这条路,你基本上需要两方面的知识:驱动程序开发和如何访问和解释superIO芯片信息。 当我们开始这个项目的时候,我们对这两个领域都没有什么了解,所以一直在浏览,阅读,最后都在学习。 为了获得这些知识,我们通过查看这些链接得到了特别的帮助:
如果你想要一些真正快速的东西,把粉丝降低到你知道事情不会过热的程度,那么就有speedfan程序。 弄清楚如何在早期版本中配置它,以便在计算机启动时自动将风扇降低到50%是如此痛苦,以至于我的第一种方法是简单地对它进行字节补丁,以便启动我以较低速度运行的唯一高级管理风扇。 较新的版本仍然有点艰难,但它是可行的 – 有一个图形滑块系统,看起来像音频均衡器,除了X轴是温度和Y是风扇速度。 你把它们一个一个地拖下来。 在弄清楚如何对所需的风扇进行手动控制之后,下一步就是如此。
有一个使用C#监视硬件(如粉丝)的项目: http : //code.google.com/p/open-hardware-monitor/
我还没有广泛的看,但WinRing0.sys的源代码和使用至少给人的印象是,如果你知道你有什么风扇控制器,并有数据表,它应该是可以修改的也设置值,而不是只是让他们。 我不知道用什么工具(除内核调试器外)来查看Speedfan的功能,如果你喜欢窥探和模仿speedfan,而不是查看数据表并尝试一下。
是的,这将是ACPI,并且据我所知,Windows并没有对用户空间给予太多/任何控制。 所以你不得不开始与司机搭讪,这在Windows上几乎是不可能的。
这就是说, 谷歌显示有一些针对特定硬件的开源Windows库…所以根据你的硬件,你可能会找到一些东西。
ACPI可能允许或不允许您调整风扇设置。 有些BIOS实现可能不允许这种控制 – 它们可能会强制控制取决于BIOS / CMOS设置。 对于BIOS控制(甚至是定制的)不足的情况,可能会有一些困难。 我遇到了BIOS控制确实不足的情况,但是并不是所有可能的主板平台都是如此。
WIndows管理规范库(WMI)确实提供了一个Win32_Fan类 ,甚至是一个SetSpeed方法。 唉,文件说这是没有实施,所以我想这不是很有帮助。 但是你可以通过设置电源状态来控制事物。