演示如何在物理内存中如何获得所须的BIOS信息

有时候VCKBASE常有人问到怎么去获一些细节系统信息。其实从BIOS中是可以获得大量系统的信息的。SMBios,即System Management BIOS以结构的方式保存了用于管理的系统信息。对于OS,BIOS的研究是须要先掌握大量相关知识的,不过方法也很重要。下面是我写的一个例子,在windows下(我用的XP)对物理内存进行访问,通过找到SMBIOS Structure Table Entry Point这一结构来定位BIOS结构表的位置,从而获得所须的系统信息。 关于信息的细节可以去看SMBios的相关规范。
        我的例子代码主要是两个文件组成:SMStdFun.cpp中为用户提供函数用于获取所需要信息;PhyMemFu.cpp则是用来在物理内存中进行操作,实现具体的功能。
        可以用下面的语句测试这个例子代码,
if(0 != GetSMTableEntryPoint(&g_TableEntry, g_dwEntryPhyAddress))
  return FALSE;
if(0 != GetAllType(g_TableEntry.dStructTableAddress))
  return FALSE; 
        它取出结构信息的Type0~Type6,当然代码中给出了其后面的类型信息的格式,自已根据须可以去使用.
         Type0: BIOS Information
         Type1:System Information
         Type2:Base Board Information
         Type3:System Enclosure or Chassis
         Type4:Processor Information
         Type5:Memory Controller Information
         Type6:Memory Module Information
         ......
    例子代码见:
http://blog.vckbase.com/Files/zyq654321/SMViewer.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值