热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VC++如何监控cpufan转速?

主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压.



主板IO用W83627THG,用VC如何取得CPU 温度,系统温度,CPU风扇转速,VBat的电压.






5 个解决方案





#1





some   website   FYI   

  http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2000/larry/finalasm.htm   

  http://www.sun.com/products-n-solutions/hardware/docs/html/816-2485-12/asm.html#57334   




#2





从下CPUID指令下可以得到:   

    1.   CPUID指令代码:   0a20f   

        例:   

          

            CPUID   MACRO   

                      dw   0a20fh   

            ENDM   

          

    2.   CPUID有效检测   

            如果程序可以改变EFLAGE(扩展标志字)的第21位,那么CPUID有效,   

            否则无效。   

            注:对于Cyrix的CPU,在打开其内部CPUID标志位之前,用此方法检测   

            无效。   

          例:   

              

              ...   

              pushfd   

              pop   eax                           

              mov   ecx,eax   

              xor   eax,200000h         ;强制扩展标志位第21位为1   

              push   eax   

              popfd   

              pushfd   

              pop   eax   

              xor   eax,ecx                 ;如果扩展标志位的第21位为1,那么   

              je   no_cpuid                 ;CPUID存在,否则不存在   

              jmp   have_cpuid   

              ...   

            

    3.   CPUID指令   

        (1)基本指令   

            1.第0号功能:   (EAX=0)   

            调用寄存器:   

                EAX=0   

            返回寄存器:   

              EAX=最大功能号   

              EBX:EDX:ECX=CPU厂商识别串   

            例:   

              

              ...   

              xor   eax,eax                   

              CPUID               

              cmp   ebx,"Genu"   

              jne   no_intel     

              cmp   edx,"ineI"   

              jne   no_intel   

              cmp   ecx,"ntel"   

              jne   no_intel   

              jmp   is_intel   

              ...   

              

            合并ebx,edc,ecx寄存器的值,如果为GenuineIntel,就是Intel的CPU   

    

            另:   

            AuthenticAMD   =>   AMD   

            CyrixInstead   =>   Cyrix,被VIA兼并了   

            NexGenDriven   =>   NextGen   

            RiseRiseRise   =>   Rise   

            UMC   UMC   UMC     =>   UMC   

            CentaurHauls   =>   IDT   

    

            2.第1号功能:   (EAX=1)   

            调用寄存器   

              EAX=1   

            返回寄存器   

              EAX=CPU说明   

                CPU说明(见附录1)   

                  

                    bit           内容   

                  0--3           节率   (stepping)   

                  4--7           型号   (model)   

                  8--11         家族   (family)   

                  

              EDX=特征标志字   

                

                  bit             内容                                                                   缩写   

                    0               FPU   On-chip                                                     FPU   

                    1               Virtual   Mode   Extension                               VME   

                    2               Debugging   Extension                                     DE   

                    3               Page   Size   Extension                                     PSE   

                    4               Time   Stamp   Counter                                       TSC   

                    5               RDMSR/WRMSR   Instructions   

                    6               Physical   Address   Extension                       PAE   

                    7               Machine   Check   Exception                             MCE   

                    8               CMPXCHG8B   Instruction   

                    9               On-chip   APIC   HardWare   

                    10             Undefined   

                    11             SYSENTER/SYSEXIT   Instructions   

                    12             Memory   Type   Range   Registers   

                    13             Page   Global   Enable                                       PGE   

                    14             Machine   Check   Architecture                       MCA   

                    15             Conditional   Move   Instruction                   CMI   

                    16             Page   Attribute   Table                                   PAT   

                    17--22     Undefined   

                    23             MMX   Instructions                                           MMX   

                    24             internet   Streaming   SIMD   Extensions       SSE   

                    25--31     Undefined   

                  






#3





  (2)扩展指令   

              1.第80000000号功能(EAX=80000000h)   

                  调用寄存器:   

                  EAX=80000000h   

                  返回寄存器:   

                  EBX,ECX,EDX=保留   

                  EAX=最大功能号   

    

              2.第80000001号功能   

                  调用寄存器:   

                  EAX=80000001h   

                  返回寄存器:   

                  EAX=CPU说明(见第1号功能)   

                  EDX=扩展特征标志字   

                    

                      EDX[0]   <-   FPU:     FPU   on   Chip   

                      EDX[1]   <-   VME:     Virtual   Mode   Extention   present   

                      EDX[2]   <-   DE:       Debbuging   Extentions   

                      EDX[3]   <-   PSE:     CPU   support     4MB   size   pages   

                      EDX[4]   <-   TSC:     TSC   present   (See   RDTSC   command)   

                      EDX[5]   <-   MSR:     CPU   have   K5   Compatible   MSRs   

                      EDX[6]   <-   0     (Reserved)   

                      EDX[7]   <-   MCE:     Machine   Check   exception   

                      EDX[8]   <-   CX8:     Support   CMPXCHG8B   instruction   

                      EDX[9]   <-   Reserved   

                      EDX[10]<-   Support   SYSCALL   and   SYSRET   instruction     (!!!)   

                      EDX[11,12]<-     reserved   

                      EDX[13]<-   PGE:     Page   Global   Feature   support   

                      EDX[14]<-   reserved   

                      EDX[15]<-   CMOV:   CPU   support   CMOV   instruction   

                      EDX[16]<-   FCMOV:   CPU   support   FP.   FCMOV         (!!!)   

                      EDX[22..16]   <-   Reserved   

                      EDX[23]   <-   MMX:   CPU   support   IA   MMX   

                      EDX[24]   <-   (Cyrix)   Cyrix   Extended   MMX   

                      EDX[30..24]   <-   Reserved   

                      EDX[31]   <-   AMD   3DNow!   

                  

  1.   Cyrix   

          厂商识别串:   "CyrixInstead"   

          CPU名称               家族                 型号   

          MediaGX                 4                       4             

          6x86                       5                       2           (特征标志字=0x1)   

          6x86L                     5                       2           (特征标志字=0x105)   

          GXm                         5                       4   

          6x86MX                   6                       0   

                      

  2.   NexGen   

          厂商识别串:   "NexGenDriven"   

          CPU名称               家族                 型号   

          Nx586                     5                       

    

  3.   UMC   

          厂商识别串:   "UMC   UMC   UMC   "   

          CPU名称               家族                 型号   

          U5D                         4                       1   

          U5S                         4                       2   

    

  4.   AMD   

          厂商识别串:   "AuthenticAMD"   

          CPU名称               家族                 型号   

        486DX2WT                 4                         3   

        486DX2WB                 4                         7   

        486DX4WT                 4                         8   

        486DX4WB                 4                         9   

        5x86WT                     4                       0x0e   

        5x86WB                     4                       0x0f   

        486                           4                       Others   

        K5/SS                       5                         0   

        K5                             5                       1,2,3   

        K6                             5                       6,7   

        K6-2                         5                         8   

        K6-III                     5                         9   

        K5/K6                       5                       Others   

        K7工程样本             6                         0   

        K7                             6                       Others   

    

  5.   IDT   

          厂商识别串:   "CentaurHauls"   

          CPU名称               家族                 型号   

        WinChip   C6             5                         4   

        WinChip   2               5                         8   

    

  6     Rise   

          厂商识别串:   "RiseRiseRise"   

          CPU名称               家族                 型号   

          mP6                         5                       0   

    

  7.   Intel   

          厂商识别串:   "GenuineIntel"   

          CPU名称                                               家族                 型号   

          PentiumII                                             6                       3   

          Celeron                                                 6                       5   

          CeleronA                                               6                       6   

          PentiumIII                                           6                       7   

          PentiumPro   OverDrive   P6                 6                       1   

          PentiumPro                                           6                     Others   

          PentiumP5                                             5                       1   

          PentiumP54C                                         5                       2   

          Pentiumi486                                         5                       3   

          PentiumMMX                                           5                       4   

          PentiumDX4                                           5                       5   

          Pentium   OverDrive   P5                       5                       6   

          Pentium                                                 5                     Others   

          486DX                                                     4                     0,1   

          486SX                                                     4                       2   

          486DX2                                                   4                       3   

          486SL                                                     4                       4   

          486SX2                                                   4                       5   

          486DX2_WB                                             4                       7   

          486DX4                                                   4                       8   

          Celeron                                             7,8                     1   

          Pentium   III   Xeon                           7,8                     3   

          Pentium   IV                                       7,8                     4   

          Pentium   III                                     7,8                     L2Cache<1024   

          Pentium   III   Xeon                           7,8                     other   

          Pentium   III   Xeon                           10($A)   

          Pentium   VI   or   Ithanium               15($F)   

    






#4





主板IO用W83627THG

-------------不同主板的CPU温度之类的信息放的位置都不一样,也没有一个统一的标准。因此通过WinIO这样的方式取有可能就取不到。



除了上面的方法,在Windows下可以使用WMI来获取CPU温度等。你可以到网上搜一下“C语言 WMI”相关的东西,WMI非常强大,可以获得很多系统信息。

WMI中的Win32_Fan可获取风扇转速、Win32_Temperature可获取CPU温度。




#5





关于WMI中的Win32_Fan等的信息还可以参考这二个网页:

http://www.cppfans.com/articles/system/bcb_wmi.asp

http://hi.baidu.com/cnsdnet/blog/item/9386fc50ccf874581038c2bd.html









推荐阅读
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本题涉及一棵由N个节点组成的树(共有N-1条边),初始时所有节点均为白色。题目要求处理两种操作:一是改变某个节点的颜色(从白变黑或从黑变白);二是查询从根节点到指定节点路径上的第一个黑色节点,若无则输出-1。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
author-avatar
福州-台江_616
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有