<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BIOS</title><link>http://blog.vckbase.com/zyq654321/category/606.html</link><description>BIOS</description><managingEditor>快乐小胖兔的一窟</managingEditor><dc:language>zh-CN</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>HERCULES BLOG</dc:creator><title>系统硬件信息获取的一种方法(SMBios) : 演示如何在物理内存中如何获得所须的BIOS信息</title><link>http://blog.vckbase.com/zyq654321/archive/2005/06/04/6105.html</link><pubDate>Sat, 04 Jun 2005 07:18:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2005/06/04/6105.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/6105.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2005/06/04/6105.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/6105.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/6105.html</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有时候VCKBASE常有人问到怎么去获一些细节系统信息。其实从BIOS中是可以获得大量系统的信息的。SMBios，即System Management BIOS以结构的方式保存了用于管理的系统信息。对于OS，BIOS的研究是须要先掌握大量相关知识的，不过方法也很重要。下面是我写的一个例子，在windows下（我用的XP）对物理内存进行访问，通过找到SMBIOS Structure Table Entry Point这一结构来定位BIOS结构表的位置，从而获得所须的系统信息。&lt;FONT color=#0000ff&gt;关于信息的细节可以去看SMBios的相关规范。&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我的例子代码主要是两个文件组成：SMStdFun.cpp中为用户提供函数用于获取所需要信息；PhyMemFu.cpp则是用来在物理内存中进行操作，实现具体的功能。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 可以用下面的语句测试这个例子代码，&lt;BR&gt;if(0 != GetSMTableEntryPoint(&amp;amp;g_TableEntry, g_dwEntryPhyAddress))&lt;BR&gt;&amp;nbsp;&amp;nbsp;return FALSE;&lt;BR&gt;if(0 != GetAllType(g_TableEntry.dStructTableAddress))&lt;BR&gt;&amp;nbsp;&amp;nbsp;return FALSE;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 它取出结构信息的Type0~Type6，当然代码中给出了其后面的类型信息的格式,自已根据须可以去使用.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type0:&lt;FONT size=3&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;BIOS Information&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type1:&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;System Information&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type2:&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;Base Board Information&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type3:&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;System Enclosure or Chassis&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type4:&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-size: 10.0pt"&gt;Processor Information&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Type5:&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;Memory Controller Information&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Type6:&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;Memory Module Information&lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 例子代码见：&lt;/FONT&gt;&lt;A href="http://blog.vckbase.com/Files/zyq654321/SMViewer.rar"&gt;http://blog.vckbase.com/Files/zyq654321/SMViewer.rar&lt;/A&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/6105.html" width = "1" height = "1" /&gt;</description></item></channel></rss>