Skip to content

Releases: iAJTin/iSMBIOS

Upgrade to v3.7.0

17 Aug 12:45
Compare
Choose a tag to compare

Added

  • Added support for System Management BIOS (SMBIOS) v3.7.0, includes:

    * Processor Information (Type 4):
      - SMBIOSCR00222: Added new processor sockets
      - SMBIOSCR00224: Added new processor family
      – SMBIOSCR00225: Added new processor socket
      – SMBIOSCR00226: Added new processor sockets and updated link for LoongArch processor-specific data
      – SMBIOSCR00228: Added new processor sockets
    
    * Memory Device (Type 9):
      - SMBIOSCR00221: Modified CXL description and added CXL 3.0 support
    
    * Memory Device (Type 17):
      - SMBIOSCR00227: Added PMIC/RCD Manufacturer ID and Revision information
    

Changed

  • Library versions for this version

    Library Version Description
    iTin.Core 2.0.0.7 Base library containing various extensions, helpers, common constants
    iTin.Core.Hardware.Abstractions 1.0.0.0 Generic Common Hardware Abstractions
    iTin.Core.Hardware.Common 1.0.0.5 Common Hardware Infrastructure
    iTin.Core.Hardware.Linux.Specification.Smbios 1.0.0.2 Linux Hardware Infrastructure
    iTin.Core.Hardware.MacOS.Specification.Smbios 1.0.0.2 MacOS Hardware Infrastructure
    iTin.Core.Hardware.Windows.Specification.Smbios 1.0.0.2 Windows Hardware Infrastructure
    iTin.Core.Interop.Shared 1.0.0.4 Generic Shared Interop Definitions
    iTin.Core.Interop.Windows.Specification.Smbios 1.0.0.1 Win32 Generic Interop Calls (SMBIOS)
    iTin.Hardware.Abstractions.Specification.Smbios 1.0.0.3 Generic Common Hardware Abstractions
    iTin.Hardware.Specification.Dmi 3.3.0.7 DMI Specification Implementation
    iTin.Hardware.Specification.Smbios 3.3.0.7 SMBIOS Specification Implementation
    iTin.Hardware.Specification.Tpm 1.0.0.2 TPM Specification Implementation
    iTin.Logging 1.0.0.3 Logging library

Added support for System Management BIOS (SMBIOS) v3.6.0

29 Sep 22:17
Compare
Choose a tag to compare

Added

  • Added support for System Management BIOS (SMBIOS) v3.6.0, includes:

    * Processor Information (Type 4):
      - SMBIOSCR00214: Added new processor sockets
      - SMBIOSCR00215: Added processor family ID for ARMv9
      – SMBIOSCR00218: Added new processor socket types
      – SMBIOSCR00219: Added "thread enabled" field
    
    * Memory Device (Type 17):
      - SMBIOSCR00220: Added HBM3
    
    * Various:
      - SMBIOSCR00217: Added LoongArch processor architecture
    
  • Added support for netstandard2.1

    • Add SplitEnumerator ref struct.

    • ByteReader class rewritten to work with Span in net core projects.

  • Added sample project for net60

Changed

  • Unify calls to obtain change information from a remote or local computer, currently this functionality is only available for Windows systems,
    The logic of each platform is in its own assembly iTin.Core.Hardware.Target-System.Specification.Smbios.

    Where:

    Target-System, it can be Linux, Windows or MacOS and the platform independent logic is found in the
    iTin.Hardware.Abstractions.Specification.Smbios assembly, so that from SMBIOS a call is made independent of the target platform and this
    assembly has the responsibility of managing the final call to the platform destination.

  • Library versions for this version

    Library Version Description
    iTin.Core 2.0.0.4 Base library containing various extensions, helpers, common constants
    iTin.Core.Hardware.Common 1.0.0.3 Common Hardware Infrastructure
    iTin.Core.Hardware.Linux.Specification.Smbios 1.0.0.1 Linux Hardware Infrastructure
    iTin.Core.Hardware.MacOS.Specification.Smbios 1.0.0.1 MacOS Hardware Infrastructure
    iTin.Core.Hardware.Windows.Specification.Smbios 1.0.0.1 Windows Hardware Infrastructure
    iTin.Core.Interop.Shared 1.0.0.2 Generic Shared Interop Definitions
    iTin.Core.Interop.Windows.Specification.Smbios 1.0.0.0 Win32 Generic Interop Calls (SMBIOS)
    iTin.Hardware.Abstractions.Specification.Smbios 1.0.0.2 Generic Common Hardware Abstractions
    iTin.Hardware.Specification.Dmi 3.3.0.6 DMI Specification Implementation
    iTin.Hardware.Specification.Smbios 3.3.0.6 SMBIOS Specification Implementation
    iTin.Hardware.Specification.Tpm 1.0.0.1 TPM Specification Implementation
    iTin.Logging 1.0.0.1 Logging library

v1.1.6

09 Dec 21:06
Compare
Choose a tag to compare

Fixed

  • Fixes an issue that generates an exception when a property that returns an object of type QueryPropertyDictionaryResult not available.

Added

  • Added support for System Event Log structure.

  • Added support for System Management BIOS (SMBIOS) v3.5.0, includes:

    * BIOS Information (Type 0):
      - SMBIOSCR00209: Added support for manufacturing mode
      - SMBIOSCR00210: Updated the definition of BIOS Starting Address Segment for UEFI systems
    
    * Processor Information (Type 4):
      - SMBIOSCR00205: Added processor socket (LGA4677)
    
    * System Slots (Type 9):
      - SMBIOSCR00202: Added support for slot height
      – SMBIOSCR00203: Errata: correct offsets
    
    * Built-in Pointing Device (Type 21):
      - SMBIOSCR00200: Added support for new Pointing Device interfaces
    
    * Built-in Pointing Device (Type 41):
      - SMBIOSCR00201: Added support for new Onboard Device Types
      – SMBIOSCR00204: Added note on how to describe multi-function devices
    
    * Firmware Inventory Information (Type 45, new):
      – SMBIOSCR00208: Added structure type for Firmware Inventory Information
    
    * String Property  (Type 46, new):
      – SMBIOSCR00211: Added structure for string properties
    
  • Library documentation

  • tools folder in solution root. Contains a script for update help md files.

  • Added support for MacOS (In progress...)

    Tested on:

    macOS Version
    macOS Monterey 12.0.1
    Big Sur 11.0.1
    Catalina 10.15.7

Changed

  • Changed IResultGeneric interface. Changed Value property name by Result (for code clarify).

    This change may have implications in your final code, it is resolved by changing Value to Result
    
  • Updated result classes for support more scenaries.

  • Library versions for this version

    Library Version Description
    iTin.Core 2.0.0.3 Base library containing various extensions, helpers, common constants
    iTin.Core.Hardware.Common 1.0.0.2 Common Hardware Infrastructure
    iTin.Core.Hardware.Linux.Specification.Smbios 1.0.0.0 Linux Hardware Infrastructure
    iTin.Core.Hardware.MacOS.Specification.Smbios 1.0.0.0 MacOS Hardware Infrastructure
    iTin.Core.Hardware.Windows.Specification.Smbios 1.0.0.0 Windows Hardware Infrastructure
    iTin.Core.Interop.Shared 1.0.0.1 Generic Shared Interop Definitions
    iTin.Core.Interop.Windows.Specification.Smbios 1.0.0.0 Win32 Generic Interop Calls (SMBIOS)
    iTin.Hardware.Abstractions.Specification.Smbios 1.0.0.1 Generic Common Hardware Abstractions
    iTin.Hardware.Specification.Dmi 3.3.0.5 DMI Specification Implementation
    iTin.Hardware.Specification.Smbios 3.3.0.5 SMBIOS Specification Implementation
    iTin.Hardware.Specification.Tpm 1.0.0.1 TPM Specification Implementation
    iTin.Logging 1.0.0.0 Logging library

Rename namespaces, new properties, Unified libraries (Win32 only, cross-platform) with another packages

12 Oct 00:24
Compare
Choose a tag to compare

Added

  • Add new libraries and remove old libraries for compability with another packages (Win32 only and Cross-Platform)

  • In order to unify the obtaining of one or more properties by directly consulting the structures, two new methods have been added to replace the existing ones.

    Examples:

    Single property
    Before
      DmiStructureCollection structures = DMI.CreateInstance().Structures;
      object biosVersion = structures.GetProperty(DmiProperty.Bios.BiosVersion);
      if (biosVersion! = null)
      {
          Console.WriteLine ($ @ "BIOS Version> {biosVersion}");
      }
    
    Current Version
      DmiStructureCollection structures = DMI.CreateInstance().Structures;
      QueryPropertyResult biosVersion = structures.GetProperty (DmiProperty.Bios.BiosVersion);
      if (biosVersion.Success)
      {
          Console.WriteLine ($ @ "> BIOS Version> {biosVersion.Value.Value}");
      }
    
    Where
      > Success
          true if current operation was executed successfully, otherwise false.
      
      > Value 
          If is success, contains an instance of PropertyItem containing property value (Value property) and property key (Key property)                
      
      > Errors
          If not success, contains a error collection, containing the query errors.
    
    Multiple properties
    Before
      DmiStructureCollection structures = DMI.CreateInstance().Structures;
      IDictionary<int, object> systemSlots = structures.GetProperties(DmiProperty.SystemSlots.SlotId);
      bool hasSystemSlots = systemSlots.Any();
      if (!hasSystemSlots)
      {
          Console.WriteLine($" > There is no system slots information structure in this computer");
      }
      else
      {
          foreach (KeyValuePair<int, object> systemSlot in systemSlots)
          {
              int element = systemSlot.Key;
              var property = ((IEnumerable<KeyValuePair<IPropertyKey, object>>) systemSlot.Value).FirstOrDefault();
              Console.WriteLine($@" System Slot ({element}) > {property.Value}");
          }
      }
    
    Current Version
      DmiStructureCollection structures = DMI.CreateInstance().Structures;
      QueryPropertyCollectionResult systemSlotsQueryResult = structures.GetProperties(DmiProperty.SystemSlots.SlotDesignation);
      if (!systemSlotsQueryResult.Success)
      {
          Console.WriteLine($@" > Error(s)");
          Console.WriteLine($@"   {systemSlotsQueryResult.Errors.AsMessages().ToStringBuilder()}");
      }
      else
      {
          IEnumerable<PropertyItem> systemSlotsItems = systemSlotsQueryResult.Value.ToList();
          bool hasSystemSlotsItems = systemSlotsItems.Any();
          if (!hasSystemSlotsItems)
          {
              Console.WriteLine($@" > Sorry, The '{DmiProperty.SystemSlots.SlotId}' property has not implemented on this system");
          }
          else
          {
              int index = 0;
              foreach (var systemSlotItem in systemSlotsItems)
              {
                  Console.WriteLine($@" >  System Slot ({index}) > {systemSlotItem.Value}");
                  index++;
              }
          }
      }
    
    Where
      > Success
          true if current operation was executed successfully, otherwise false.
    
      > Value 
          If is success, contains an instance of IEnumerable<PropertyItem> containing properties list, 
          on each item contains an instance of PropertyItem containing property value (Value property) 
          and property key (Key property)               
    
      > Errors
          If not success, contains a error collection, containing the query errors.
    

Removed

  • Removed net45 and netcoreapp targets. Current supported targets, net461 and netstandard20

  • Libraries removed in this version

Library Version Description
iTin.Core.Interop 1.0.0 Interop calls
iTin.Core.Hardware 1.0.1 Hardware Interop Calls

Changed

  • Rename iTin.Core.Harware.XXX namespaces for iTin.Harware.XXX namespaces

  • Library versions for this version

Library Version Description
iTin.Core 2.0.0.1 Base library containing various extensions, helpers, common constants
iTin.Core.Hardware.Common 1.0.0.1 Generic Common Hardware Infrastructure
iTin.Core.Hardware.Windows.Smbios 1.0.0.0 Win32 Generic Hardware Calls (SMBIOS)
iTin.Core.Interop.Shared 1.0.0.0 Generic Shared Interop Definitions, Data Structures, Constants...
iTin.Core.Interop.Windows.Smbios 1.0.0.0 Win32 Generic Interop Calls (SMBIOS)
iTin.Hardware.Specification.Dmi 3.3.0.4 DMI Specification Implementation
iTin.Hardware.Specification.Smbios 3.3.0.4 SMBIOS Specification Implementation
iTin.Hardware.Specification.Tpm 1.0.0.1 TPM Specification Implementation
iTin.Logging 1.0.0.0 Logging library

Adds support for System Management BIOS (SMBIOS) v3.4.0

25 Aug 00:17
Compare
Choose a tag to compare

Added

  • Adds support for System Management BIOS (SMBIOS) v3.4.0, includes:

    * Processor Information (Type 4):
      - SMBIOSCR00189: update the definition of Type 4 Processor Id for ARM64 CPUs
      - SMBIOSCR00191: add Socket LGA1200
    
    * System Slots (Type 9):
      - SMBIOSCR00193: add OCP NIC Prior to 3.0
      - SMBIOSCR00196: Slot Type extensions for PCIe Gen6 and beyond
      - SMBIOSCR00197: Add support for CXL 2.0 devices
      - SMBIOSCR00199: Add support for EDSFF slot types
    
    * Memory Device (Type 17):
      - SMBIOSCR00195: update description for Intel persistent memory device
      - SMBIOSCR00197: Add support for CXL 2.0 devices
    
  • Adds support for retrieving DMI information for remote machines using WMI

    • Currently in experimental mode, you can try to use it as it is implemented and comment if you find any problems
  • Please review the following document that indicates how to configure a remote computer to accept WMI calls

    [Connecting to WMI on a Remote Computer]

  • Usage examples

      The DMI.Instance property now is mark as obsolete use DMI.CreateInstance() method instead
      If you want to connect to a remote machine fill in an instance of the DmiConnectOptions object and use it 
      as the argument of the DMI method.CreateInstance(optionsInstance).
    
      Example:
    
      // Returns same result as DMI.Instance
      DMI dmi = DMI.CreateInstance(); 
    
      // Connect to remote machine.
      DMI dmi = DMI.CreateInstance(
          new DmiConnectOptions
          {
              UserName = "username to use"  
              Password = "password to use", 
              MachineNameOrIpAddress = "target remote machine name or machine ip address"
          });
    

Changed

  • Library versions for this version
Library Version Description
iTin.Core 1.0.2 Common calls
iTin.Core.Interop 1.0.0 Interop calls
iTin.Core.Hardware 1.0.1 Hardware Interop Calls
iTin.Core.Hardware.Specification.Dmi 3.3.0.3 DMI Specification Implementation
iTin.Core.Hardware.Specification.Smbios 3.3.0.3 SMBIOS Specification Implementation
iTin.Core.Hardware.Specification.Tpm 1.0.0 TPM Specification Implementation

Fix bugs

06 Mar 00:23
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in the DmiType 022 [Portable Battery] structure for versions equal to or greater than 2.1, which prevents the correct assignment of the DesignVoltage property due to an error in type conversion

  • Fixed a bug in the DmiType 022 [Portable Battery] structure for versions equal to or greater than 2.1, which prevents the correct assignment of the DesignCapacity property due to an error in type conversion

  • Fixed a bug in the DmiType 022 [Portable Battery] structure for versions equal to or greater than 2.1, which prevents the correct assignment of the OemSpecific property due to an error in type conversion

  • Fixed a bug in the DmiType 000 [BIOS] structure for versions equal to or greater than 3.1, which prevents the correct assignment of the BiosRomSize property due to an error in type conversion

  • Fixed a bug where the detection of StructureVersion for Type017 [Memory device], when the length of the structure is not a canonical length, such as windows running virtualized in parallels on a mac

Changed

  • Library versions for this version
Library Version Description
iTin.Core 1.0.1 Common calls
iTin.Core.Interop 1.0.0 Interop calls
iTin.Core.Hardware 1.0.1 Hardware Interop Calls
iTin.Core.Hardware.Specification.Dmi 3.3.0.1 DMI Specification Implementation
iTin.Core.Hardware.Specification.Smbios 3.3.0.2 SMBIOS Specification Implementation
iTin.Core.Hardware.Specification.Tpm 1.0.0 TPM Specification Implementation

Adds descriptive code help, Compability with v3.4.0a (Preliminary version)

15 Feb 02:43
Compare
Choose a tag to compare

Added

  • Adds support for System Management BIOS (SMBIOS) v3.4.0a (Preliminary version), includes:

    * Processor Information (Type 4)::
      - SMBIOSCR00190: add Socket LGA4189
    * System Slots (Type 9):
      - SMBIOSCR00186: add PCI Express Gen 5 and U.2 values
      - SMBIOSCR00188: add OCP NIC 3.0 values
    * Memory Device (Type 17):
      - SMBIOSCR00187: add new memory device types (DDR5, LPDDR5)
    
  • Adds SmbiosVersion property to DMI object.

  • Adds ImplementedVersion property to DmiClasses, indicates which structure version the manufacturer has implemented for a version of smbios.

  • SMBIOS 3.4.0a (preliminary version) pdf file to Documents folder.

Changed

  • Typographic errors. Renames properties names.

  • Adds descriptive code help. I Tried to adds a help most descriptive for the properties keys.

  • Library versions for this version

Library Version Description
iTin.Core 1.0.1 Common calls
iTin.Core.Interop 1.0.0 Interop calls
iTin.Core.Hardware 1.0.1 Hardware Interop Calls
iTin.Core.Hardware.Specification.Dmi 3.3.0.1 DMI Specification Implementation
iTin.Core.Hardware.Specification.Smbios 3.3.0.1 SMBIOS Specification Implementation
iTin.Core.Hardware.Specification.Tpm 1.0.0 TPM Specification Implementation

Updates SMBIOS to specification v3.3.0

20 Oct 00:36
Compare
Choose a tag to compare

Added

  • Adds support for System Management BIOS (SMBIOS) v3.3.0, includes:

    * System Slots (Type 9):
      - SMBIOSCR00184: add PCI Express Gen 4 values
      - SMBIOSCR00185: clarify bus number usage for PCI Express
    * Memory Device (Type 17):
      - SMBIOSCR00178: add new memory device type value (HBM) and new form factor value (Die)
      - SMBIOSCR00179: update the string for Intel persistent memory
    * Various:
      - SMBIOSCR00181: add support for RISC-V processors, add structure type 44 (processor-additional information)
      - SMBIOSCR00183: add support for CXL Flexbus
    

Changed

  • Library versions for this version
Library Version Description
iTin.Core 1.0.0 Common calls
iTin.Core.Interop 1.0.0 Interop calls
iTin.Core.Hardware 1.0.0 Hardware Interop Calls
iTin.Core.Hardware.Specification.Dmi 3.3.0.0 DMI Specification Implementation
iTin.Core.Hardware.Specification.Smbios 3.3.0.0 SMBIOS Specification Implementation
iTin.Core.Hardware.Specification.Tpm 1.0.0 TPM Specification Implementation

Solves a problem with duplicate properties keys and adds binary compability with other projecs

02 Sep 00:24
Compare
Choose a tag to compare

Added

  • iTin.Core.Interop: Adds binary compability with iEEDID, iCPUID, iScreen (comming soon)

    • Many structures, enumerations, win32 native methods have been added to project, for video cards, video modes, monitors, storage, etc ...
  • Minor changes.

Changed

  • iTin.Core.Hardware:
    • Due to a problem with duplicate properties of the same type, the data type for storing the properties has been changed.

Solution migrated to .Net Standard

28 Aug 10:08
Compare
Choose a tag to compare

Added

  • Added iSMBIOS.ConsoleAppCore netcoreapp console app project.

    \root
      - lib
        - iTin.Core             
          - iTin.Core                                [Common Calls] 
          - iTin.Core.Interop                        [Interop Calls]
        - iTin.Core.Hardware    
          - iTin.Core.Hardware                       [Hardware Interop Calls]
        - iTin.Core.Hardware.Specification   
          - iTin.Core.Hardware.Specification.Dmi     [DMI Specification Implementation] 
          - iTin.Core.Hardware.Specification.Smbios  [SMBIOS Specification Implementation] 
          - iTin.Core.Hardware.Specification.Tpm     [TPM Specification Implementation] 
      - test
          - iSMBIOS.ConsoleApp                       [Console Test App]
          - iSMBIOS.ConsoleAppCore                   [NetCoreApp Console Test App]
    
  • Minor changes.

Changed

  • The solution has been migrated to .NetStandard.

    • The supported targets are:

      .NetFramework > = 4.5
      .NetStandard > = 2.0
      .NetCoreapp > = 2.0