我想阅读我的英特尔芯片组的"TSTR"-register (热传感器温度计读取寄存器)。我发现雷姆斯尔函数是我所需要的。我还设置了一个内核驱动程序,因为该函数只能在内核模式下使用。
但我不知道该怎么查.在芯片组的数据表中,第857页指出寄存器的偏移入口是TBARB+03h。
我怎么才能用这句话?外面有帮助我的教程吗?
谢谢!
发布于 2014-07-09 09:59:06
据我所知,试图做同样的事情,__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在内核模式下构建这个程序,这似乎是不愿意做的,我一直得到特权指令错误。当我摆脱了这个问题,整个程序开始工作时,我会写一个关于一般过程的教程,但在那之前,我只敢给出一个理论上的答案。如果您的编译器倾向于听取您的意见,只需添加/kernel编译器选项,因为您只是在读取而不是编辑寄存器,所以应该是安全的。
编辑:还有这篇文章,答案或多或少地暗示了我想要做的事情,尽管没有比我目前所做的更多,但无论如何还是要看一看:
发布于 2017-03-13 18:59:16
“此指令必须在特权级别0或实地址模式下执行;否则,将生成一般保护异常#GP(0)。”
http://faydoc.tripod.com/cpu/rdmsr.htm
https://stackoverflow.com/questions/18154258
复制相似问题