硬件检测与硬件信息的获取C/C++
——序
一直很好奇网络上的种种软件是怎么获取到诸多硬件信息的,但是Google了好久都没有找到有关硬件检测和信息获取方面比较完整的文章。无奈之下,只好去找相关硬件的标准规范来看,终于拨云见日。可怜我英语水平一般,所看的标准规范全是英文的,所以经过1年多的努力,终于算是理解了很多东西,并最终找到了其中的方法。与此同时,我发现有很多人也跟我一样,对这方面很有兴趣,于是我决定把我所了解方法与大家分享。我会在接下来的时间里,陆续分别针对CPU,硬盘,内存,显卡,USB等硬件进行全面的说明。
本文提供一种操作系统独立(OS-Independent)的检测和获取方法的同时也针对不同的操作系统给出专门的方法。由于本人才疏学浅,在操作系统相关方面只提供在Windows上方法,Linux/Unix系统则不做介绍。
操作系统独立的方法有以下几种:
(1)利用BIOS中断服务;
(2)读取物理内存的特定位置;
(3)使用CPU的I/O指令读写硬件的寄存器。
(4)使用SMBIOS;
Windows系统下,除了上述的方法外,还可以通过(1)注册表;(2)WMI;(3)DeviceIoControl的方法来实现。
(未完待续。。。)