# HG changeset patch # User moel.mich # Date 1289679603 0 # Node ID 881aedb94bc6e6312124cbaeb8e7c28d01878c00 # Parent 52007c404f3241550930bb48bc649ed214fb88e3 Fixed Issue 138. diff -r 52007c404f32 -r 881aedb94bc6 Hardware/Mainboard/SMBIOS.cs --- a/Hardware/Mainboard/SMBIOS.cs Thu Nov 11 21:22:24 2010 +0000 +++ b/Hardware/Mainboard/SMBIOS.cs Sat Nov 13 20:20:03 2010 +0000 @@ -48,6 +48,7 @@ private readonly byte[] raw; private readonly Structure[] table; + private readonly Version version; private readonly BIOSInformation biosInformation; private readonly BaseBoardInformation baseBoardInformation; @@ -84,19 +85,26 @@ List structureList = new List(); raw = null; + byte majorVersion = 0; + byte minorVersion = 0; try { ManagementObjectCollection collection; using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", - "SELECT SMBiosData FROM MSSMBios_RawSMBiosTables")) { + "SELECT * FROM MSSMBios_RawSMBiosTables")) { collection = searcher.Get(); } foreach (ManagementObject mo in collection) { raw = (byte[])mo["SMBiosData"]; + majorVersion = (byte)mo["SmbiosMajorVersion"]; + minorVersion = (byte)mo["SmbiosMinorVersion"]; break; } } catch { } + + if (majorVersion > 0 || minorVersion > 0) + version = new Version(majorVersion, minorVersion); if (raw != null && raw.Length > 0) { int offset = 0; @@ -147,6 +155,11 @@ public string GetReport() { StringBuilder r = new StringBuilder(); + if (version != null) { + r.Append("SMBIOS Version: "); r.AppendLine(version.ToString(2)); + r.AppendLine(); + } + if (BIOS != null) { r.Append("BIOS Vendor: "); r.AppendLine(BIOS.Vendor); r.Append("BIOS Version: "); r.AppendLine(BIOS.Version);