none
C++如何得到SMBIOS TYPE0 BIOS Version? RRS feed

  • 问题

  • 最近在做一个关于platformidentification的东西,需要通过smbios type0 里面的bios version字段来区分不同的平台,现在我想请教一下,在windows平台如何获得这个字段呢?
    另外,这个字段不同于wmi里面的win32_bios class当中的string BIOS Version[],这个我通过safearray取出来试过了,是不一样的。
    还望给个c++版的源代码供我参考一下,谢谢!
    两天晒网
    2009年10月17日 10:45

答案

  • 可以用WMI里面的MSSMBios_RawSMBiosTables类需要主板支持SMBIOS规范。你也可以用EnumSystemFirmwareTables,不过只有Vista/2008/2003SP1/XP64这样比较新的操作系统才支持,

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年10月17日 14:25
    版主

全部回复

  • 可以用WMI里面的MSSMBios_RawSMBiosTables类需要主板支持SMBIOS规范。你也可以用EnumSystemFirmwareTables,不过只有Vista/2008/2003SP1/XP64这样比较新的操作系统才支持,

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年10月17日 14:25
    版主
  • 我通过dmi来检查bios发现它们都是遵守的,你说的那个EnumTables在xp里面不能用吧。。能否介绍一个xp里面能用的方式?
    两天晒网
    2009年10月17日 16:21
  • 請問上面所說的方法在Windows 8 底下使用EFI BIOS適用嗎?

    Vannes Yang

    2012年8月21日 4:58