我想阅读我的英特尔芯片组的“TSTR”寄存器(热传感器温度计读取寄存器)。 我发现__readmsr函数是我需要的。 我还设置了一个内核驱动程序,因为该功能仅在内核模式下可用。
但我不知道如何访问寄存器...... 在第857页的芯片组datasheet中,寄存器的偏移地址为 TBARB + 03h 。
我如何使用此地址?那里有可以帮助我的教程吗?
谢谢!
答案 0 :(得分:1)
据我所知,尝试做同样的事情,__ readmsr确实是访问寄存器的正确命令:
http://msdn.microsoft.com/en-us/library/y55zyfdx%28v=VS.100%29.aspx
但是我正在研究i5和英特尔的文档
http://www.intel.com/content/www/us/en/intelligent-systems/piketon/core-i7-800-i5-700-desktop-datasheet-vol-2.html
建议MC_RANK_VIRTUAL_TEMP条目之类的东西是寄存器,所以它应该工作,所以你可能在正确的轨道上......特定的寄存器在272页。所以从技术上来说这确实是答案,__ readmsr(1568)在我的情况下。登记/>
然而,我正在努力说服Visual Studio 2010在内核模式下构建它,它似乎不愿意这样做,我一直得到Priviledged Instruction错误..当我把它弄出来并且整个程序工作时我会写一个关于一般过程的教程,但在那之前我只敢给出理论上的答案。如果您的编译器倾向于听你说的话,只需添加/ kernel编译器选项,因为你只是阅读而不是编辑寄存器应该是安全的。
编辑:
还有这篇文章,答案或多或少地暗示了我正在尝试做的事情,虽然目前为止并不多,但无论如何都要看看:
How to access CPU's heat sensors?
答案 1 :(得分:0)
“此指令必须在特权级别0或实地址模式下执行;否则,将生成一般保护异常#GP(0)。”