/// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.v21)
            {
                return;
            }

            properties.Add(DmiProperty.MemoryArrayMappedAddress.MemoryArrayHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryArrayMappedAddress.MemoryArrayHandle));
            properties.Add(DmiProperty.MemoryArrayMappedAddress.PartitionWidth, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryArrayMappedAddress.PartitionWidth));

            uint startingAddress = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.MemoryArrayMappedAddress.StartingAddress);

            properties.Add(
                DmiProperty.MemoryArrayMappedAddress.StartingAddress,
                startingAddress == 0xffffffff
                    ? SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryArrayMappedAddress.ExtendedStartingAddress)
                    : (ulong)startingAddress * (ulong)1024);

            uint endingAddress = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.MemoryArrayMappedAddress.EndingAddress);

            properties.Add(
                DmiProperty.MemoryArrayMappedAddress.EndingAddress,
                endingAddress == 0xffffffff
                    ? SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryArrayMappedAddress.ExtendedEndingAddress)
                    : (ulong)endingAddress * (ulong)1024);
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion >= DmiStructureVersion.v21)
            {
                properties.Add(DmiProperty.PortableBattery.Location, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.Location));
                properties.Add(DmiProperty.PortableBattery.Manufacturer, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.Manufacturer));
                properties.Add(DmiProperty.PortableBattery.DeviceName, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.DeviceName));

                ushort designVoltage = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.PortableBattery.DesignVoltage);
                if (designVoltage != 0x0000)
                {
                    properties.Add(DmiProperty.PortableBattery.DesignVoltage, designVoltage);
                }

                properties.Add(DmiProperty.PortableBattery.SBDSVersionNumber, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.SBDSVersionNumber));

                byte maximumErrorInBatteryData = SmbiosStructure.GetPropertyValue <byte>(SmbiosProperty.PortableBattery.MaximunErrorInBatteryData);
                if (maximumErrorInBatteryData != 0xff)
                {
                    properties.Add(DmiProperty.PortableBattery.MaximunErrorInBatteryData, maximumErrorInBatteryData);
                }

                properties.Add(DmiProperty.PortableBattery.ManufactureDate, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.ManufactureDate));
                properties.Add(DmiProperty.PortableBattery.SerialNumber, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.SerialNumber));
                properties.Add(DmiProperty.PortableBattery.DeviceChemistry, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.DeviceChemistry));
                properties.Add(DmiProperty.PortableBattery.DesignCapacity, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.DesignCapacity));
                properties.Add(DmiProperty.PortableBattery.DesignCapacityMultiplier, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.DesignCapacityMultiplier));
            }

            if (SmbiosStructure.StructureInfo.Length >= 0x17)
            {
                properties.Add(DmiProperty.PortableBattery.OemSpecific, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortableBattery.OemSpecific));
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.v21)
            {
                return;
            }

            properties.Add(DmiProperty.PhysicalMemoryArray.Location, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.Location));
            properties.Add(DmiProperty.PhysicalMemoryArray.Use, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.Use));
            properties.Add(DmiProperty.PhysicalMemoryArray.MemoryErrorCorrection, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.MemoryErrorCorrection));
            properties.Add(DmiProperty.PhysicalMemoryArray.MemoryErrorInformationHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.MemoryErrorInformationHandle));
            properties.Add(DmiProperty.PhysicalMemoryArray.NumberOfMemoryDevices, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.NumberOfMemoryDevices));

            uint maximumCapacity = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.PhysicalMemoryArray.MaximumCapacity);

            if (maximumCapacity != 0x08000000)
            {
                properties.Add(DmiProperty.PhysicalMemoryArray.MaximumCapacity, maximumCapacity);
            }
            else
            {
                if (ImplementedVersion >= DmiStructureVersion.v27)
                {
                    properties.Add(DmiProperty.PhysicalMemoryArray.MaximumCapacity, SmbiosStructure.GetPropertyValue(SmbiosProperty.PhysicalMemoryArray.ExtendedMaximumCapacity));
                }
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            properties.Add(DmiProperty.GroupAssociations.GroupName, SmbiosStructure.GetPropertyValue(SmbiosProperty.GroupAssociations.GroupName));

            object containedElements = SmbiosStructure.GetPropertyValue(SmbiosProperty.GroupAssociations.ContainedElements);

            properties.Add(DmiProperty.GroupAssociations.ContainedElements, new DmiGroupAssociationElementCollection((GroupAssociationElementCollection)containedElements));
        }
 /// <inheritdoc/>
 /// <summary>
 /// Populates the property collection for this structure.
 /// </summary>
 /// <param name="properties">Collection of properties of this structure.</param>
 protected override void PopulateProperties(DmiClassPropertiesTable properties)
 {
     properties.Add(DmiProperty.PortConnector.InternalReferenceDesignator, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortConnector.InternalReferenceDesignator));
     properties.Add(DmiProperty.PortConnector.InternalConnectorType, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortConnector.InternalConnectorType));
     properties.Add(DmiProperty.PortConnector.ExternalReferenceDesignator, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortConnector.ExternalReferenceDesignator));
     properties.Add(DmiProperty.PortConnector.ExternalConnectorType, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortConnector.ExternalConnectorType));
     properties.Add(DmiProperty.PortConnector.PortType, SmbiosStructure.GetPropertyValue(SmbiosProperty.PortConnector.PortType));
 }
Ejemplo n.º 6
0
 /// <inheritdoc/>
 /// <summary>
 /// Populates the property collection for this structure.
 /// </summary>
 /// <param name="properties">Collection of properties of this structure.</param>
 protected override void PopulateProperties(DmiClassPropertiesTable properties)
 {
     #region version 3.5
     properties.Add(DmiProperty.StringProperty.PropertyId, SmbiosStructure.GetPropertyValue(SmbiosProperty.StringProperty.PropertyId));
     properties.Add(DmiProperty.StringProperty.PropertyValue, SmbiosStructure.GetPropertyValue(SmbiosProperty.StringProperty.PropertyValue));
     properties.Add(DmiProperty.StringProperty.ParentHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.StringProperty.ParentHandle));
     #endregion
 }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.AdditionalInformation.Entries, new DmiAdditionalInformationEntryCollection((AdditionalInformationEntryCollection)SmbiosStructure.GetPropertyValue(SmbiosProperty.AdditionalInformation.Entries)));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.SystemBoot.BootStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemBoot.BootStatus));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion <= DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.BootIntegrityServicesEntryPoint.Checksum, SmbiosStructure.GetPropertyValue(SmbiosProperty.BootIntegrityServicesEntryPoint.Checksum));
            properties.Add(DmiProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress16, SmbiosStructure.GetPropertyValue(SmbiosProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress16));
            properties.Add(DmiProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress32, SmbiosStructure.GetPropertyValue(SmbiosProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress32));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.OnBoardDevicesExtended.ReferenceDesignation, SmbiosStructure.GetPropertyValue(SmbiosProperty.OnBoardDevicesExtended.ReferenceDesignation));
            properties.Add(DmiProperty.OnBoardDevicesExtended.Element.DeviceStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.OnBoardDevicesExtended.Element.DeviceStatus));
            properties.Add(DmiProperty.OnBoardDevicesExtended.Element.DeviceType, SmbiosStructure.GetPropertyValue(SmbiosProperty.OnBoardDevicesExtended.Element.DeviceType));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            object referenceHandle = SmbiosStructure.GetPropertyValue(SmbiosProperty.ProcessorAdditionalInformation.ReferencedHandle);

            if (referenceHandle != null)
            {
                properties.Add(DmiProperty.ProcessorAdditionalInformation.ReferencedHandle, referenceHandle);
            }

            properties.Add(DmiProperty.ProcessorAdditionalInformation.ProcessorSpecificBlock, SmbiosStructure.GetPropertyValue(SmbiosProperty.ProcessorAdditionalInformation.ProcessorSpecificBlock));
        }
Ejemplo n.º 12
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.v21)
            {
                return;
            }

            properties.Add(DmiProperty.BuiltInPointingDevice.NumberOfButtons, SmbiosStructure.GetPropertyValue(SmbiosProperty.BuiltInPointingDevice.NumberOfButtons));
            properties.Add(DmiProperty.BuiltInPointingDevice.Type, SmbiosStructure.GetPropertyValue(SmbiosProperty.BuiltInPointingDevice.Type));
            properties.Add(DmiProperty.BuiltInPointingDevice.Interface, SmbiosStructure.GetPropertyValue(SmbiosProperty.BuiltInPointingDevice.Interface));
        }
Ejemplo n.º 13
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.OutOfBandRemote.Manufacturer, SmbiosStructure.GetPropertyValue(SmbiosProperty.OutOfBandRemote.Manufacturer));
            properties.Add(DmiProperty.OutOfBandRemote.Connections.OutBoundConnection, SmbiosStructure.GetPropertyValue(SmbiosProperty.OutOfBandRemote.Connections.OutBoundConnection));
            properties.Add(DmiProperty.OutOfBandRemote.Connections.InBoundConnection, SmbiosStructure.GetPropertyValue(SmbiosProperty.OutOfBandRemote.Connections.InBoundConnection));
        }
Ejemplo n.º 14
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.v20)
            {
                return;
            }

            properties.Add(DmiProperty.BiosLanguage.InstallableLanguages, SmbiosStructure.GetPropertyValue(SmbiosProperty.BiosLanguage.InstallableLanguages));
            properties.Add(DmiProperty.BiosLanguage.IsCurrentAbbreviated, SmbiosStructure.GetPropertyValue(SmbiosProperty.BiosLanguage.IsCurrentAbbreviated));
            properties.Add(DmiProperty.BiosLanguage.Current, SmbiosStructure.GetPropertyValue(SmbiosProperty.BiosLanguage.Current));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.HardwareSecurity.HardwareSecuritySettings.FrontPanelResetStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.FrontPanelResetStatus));
            properties.Add(DmiProperty.HardwareSecurity.HardwareSecuritySettings.AdministratorPasswordStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.AdministratorPasswordStatus));
            properties.Add(DmiProperty.HardwareSecurity.HardwareSecuritySettings.KeyboardPasswordStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.KeyboardPasswordStatus));
            properties.Add(DmiProperty.HardwareSecurity.HardwareSecuritySettings.PowerOnPasswordStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.PowerOnPasswordStatus));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.ManagementDevice.Description, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDevice.Description));
            properties.Add(DmiProperty.ManagementDevice.Type, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDevice.Type));
            properties.Add(DmiProperty.ManagementDevice.Address, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDevice.Address));
            properties.Add(DmiProperty.ManagementDevice.AddressType, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDevice.AddressType));
        }
Ejemplo n.º 17
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion >= DmiStructureVersion.Latest)
            {
                properties.Add(DmiProperty.VoltageProbe.Description, SmbiosStructure.GetPropertyValue(SmbiosProperty.VoltageProbe.Description));
                properties.Add(DmiProperty.VoltageProbe.LocationAndStatus.Status, SmbiosStructure.GetPropertyValue(SmbiosProperty.VoltageProbe.LocationAndStatus.Status));
                properties.Add(DmiProperty.VoltageProbe.LocationAndStatus.Location, SmbiosStructure.GetPropertyValue(SmbiosProperty.VoltageProbe.LocationAndStatus.Location));

                ushort maximumValue = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.MaximumValue);
                if (maximumValue != 0x8000)
                {
                    properties.Add(DmiProperty.VoltageProbe.MaximumValue, maximumValue);
                }

                ushort minimumValue = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.MinimumValue);
                if (minimumValue != 0x8000)
                {
                    properties.Add(DmiProperty.VoltageProbe.MinimumValue, minimumValue);
                }

                ushort resolution = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.Resolution);
                if (resolution != 0x8000)
                {
                    properties.Add(DmiProperty.VoltageProbe.Resolution, resolution);
                }

                ushort tolerance = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.Tolerance);
                if (tolerance != 0x8000)
                {
                    properties.Add(DmiProperty.VoltageProbe.Tolerance, tolerance);
                }

                ushort accuracy = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.Accuracy);
                if (accuracy != 0x8000)
                {
                    properties.Add(DmiProperty.VoltageProbe.Accuracy, accuracy);
                }

                properties.Add(DmiProperty.VoltageProbe.OemDefined, SmbiosStructure.GetPropertyValue(SmbiosProperty.VoltageProbe.OemDefined));
            }

            if (SmbiosStructure.StructureInfo.Length < 0x15)
            {
                return;
            }

            ushort nominalValue = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.VoltageProbe.NominalValue);

            if (nominalValue != 0x8000)
            {
                properties.Add(DmiProperty.VoltageProbe.NominalValue, nominalValue);
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            properties.Add(DmiProperty.SystemPowerSupply.IsRedundant, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.IsRedundant));
            properties.Add(DmiProperty.SystemPowerSupply.Location, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Location));
            properties.Add(DmiProperty.SystemPowerSupply.DeviceName, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.DeviceName));
            properties.Add(DmiProperty.SystemPowerSupply.Manufacturer, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Manufacturer));
            properties.Add(DmiProperty.SystemPowerSupply.SerialNumber, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.SerialNumber));
            properties.Add(DmiProperty.SystemPowerSupply.AssetTagNumber, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.AssetTagNumber));
            properties.Add(DmiProperty.SystemPowerSupply.ModelPartNumber, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.ModelPartNumber));
            properties.Add(DmiProperty.SystemPowerSupply.RevisionLevel, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.RevisionLevel));

            ushort maxPowerCapacity = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemPowerSupply.MaxPowerCapacity);

            if (maxPowerCapacity != 0x8000)
            {
                properties.Add(DmiProperty.SystemPowerSupply.MaxPowerCapacity, maxPowerCapacity);
            }

            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.SupplyType, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.SupplyType));
            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.Status, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.Status));
            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.InputVoltageRange, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.InputVoltageRange));
            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.IsPlugged, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.IsPlugged));
            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.IsPresent, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.IsPresent));
            properties.Add(DmiProperty.SystemPowerSupply.Characteristics.IsHotReplaceable, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerSupply.Characteristics.IsHotReplaceable));

            if (SmbiosStructure.StructureInfo.Length >= 0x11)
            {
                ushort inputVoltageProbeHandle = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemPowerSupply.InputVoltageProbeHandle);
                if (inputVoltageProbeHandle != 0xffff)
                {
                    properties.Add(DmiProperty.SystemPowerSupply.InputVoltageProbeHandle, inputVoltageProbeHandle);
                }
            }

            if (SmbiosStructure.StructureInfo.Length >= 0x13)
            {
                ushort coolingDeviceHandle = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemPowerSupply.CoolingDeviceHandle);
                if (coolingDeviceHandle != 0xffff)
                {
                    properties.Add(DmiProperty.SystemPowerSupply.CoolingDeviceHandle, coolingDeviceHandle);
                }
            }

            if (SmbiosStructure.StructureInfo.Length >= 0x15)
            {
                ushort inputCurrentProbeHandle = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemPowerSupply.InputCurrentProbeHandle);
                if (inputCurrentProbeHandle != 0xffff)
                {
                    properties.Add(DmiProperty.SystemPowerSupply.InputCurrentProbeHandle, inputCurrentProbeHandle);
                }
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            #region 2.0+
            if (ImplementedVersion >= DmiStructureVersion.v20)
            {
                properties.Add(DmiProperty.Cache.SocketDesignation, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.SocketDesignation));
                properties.Add(DmiProperty.Cache.CacheConfiguration.OperationalMode, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CacheConfiguration.OperationalMode));
                properties.Add(DmiProperty.Cache.CacheConfiguration.CacheEnabled, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CacheConfiguration.CacheEnabled));
                properties.Add(DmiProperty.Cache.CacheConfiguration.Location, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CacheConfiguration.Location));
                properties.Add(DmiProperty.Cache.CacheConfiguration.CacheSocketed, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CacheConfiguration.CacheSocketed));
                properties.Add(DmiProperty.Cache.CacheConfiguration.Level, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CacheConfiguration.Level));
                properties.Add(DmiProperty.Cache.MaximumCacheSize, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.MaximumCacheSize));

                int installedCacheSize = SmbiosStructure.GetPropertyValue <int>(SmbiosProperty.Cache.InstalledCacheSize);
                if (installedCacheSize != 0x0000)
                {
                    properties.Add(DmiProperty.Cache.InstalledCacheSize, installedCacheSize);
                }

                properties.Add(DmiProperty.Cache.SupportedSramTypes, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.SupportedSramTypes));
                properties.Add(DmiProperty.Cache.CurrentSramType, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.CurrentSramType));
            }
            #endregion

            #region 2.1+
            if (ImplementedVersion >= DmiStructureVersion.v21)
            {
                byte cacheSpeed = SmbiosStructure.GetPropertyValue <byte>(SmbiosProperty.Cache.CacheSpeed);
                if (cacheSpeed != 0x00)
                {
                    properties.Add(DmiProperty.Cache.CacheSpeed, cacheSpeed);
                }

                properties.Add(DmiProperty.Cache.ErrorCorrectionType, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.ErrorCorrectionType));
                properties.Add(DmiProperty.Cache.SystemCacheType, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.SystemCacheType));
                properties.Add(DmiProperty.Cache.Associativity, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.Associativity));
            }
            #endregion

            #region 3.1+
            if (ImplementedVersion >= DmiStructureVersion.v31)
            {
                properties.Add(DmiProperty.Cache.MaximumCacheSize2, SmbiosStructure.GetPropertyValue(SmbiosProperty.Cache.MaximumCacheSize2));

                uint installedCacheSize2 = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.Cache.InstalledCacheSize2);
                if (installedCacheSize2 != 0x00)
                {
                    properties.Add(DmiProperty.Cache.InstalledCacheSize2, installedCacheSize2);
                }
            }
            #endregion
        }
Ejemplo n.º 20
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.SystemPowerControls.Month, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerControls.Month));
            properties.Add(DmiProperty.SystemPowerControls.Day, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerControls.Day));
            properties.Add(DmiProperty.SystemPowerControls.Hour, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerControls.Hour));
            properties.Add(DmiProperty.SystemPowerControls.Minute, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerControls.Minute));
            properties.Add(DmiProperty.SystemPowerControls.Second, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemPowerControls.Second));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            ushort lowerNonCritical = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.LowerNonCritical);

            if (lowerNonCritical != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.LowerNonCritical, lowerNonCritical);
            }

            ushort upperNonCritical = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.UpperNonCritical);

            if (upperNonCritical != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.UpperNonCritical, upperNonCritical);
            }

            ushort lowerCritical = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.LowerCritical);

            if (lowerCritical != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.LowerCritical, lowerCritical);
            }

            ushort upperCritical = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.UpperCritical);

            if (upperCritical != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.UpperCritical, upperCritical);
            }

            ushort lowerNonRecoverable = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.LowerNonRecoverable);

            if (lowerNonRecoverable != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.LowerNonRecoverable, lowerNonRecoverable);
            }

            ushort upperNonRecoverable = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceThresholdData.UpperNonRecoverable);

            if (upperNonRecoverable != 0x8000)
            {
                properties.Add(DmiProperty.ManagementDeviceThresholdData.UpperNonRecoverable, upperNonRecoverable);
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.TpmDevice.VendorId, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.VendorId));
            properties.Add(DmiProperty.TpmDevice.VendorIdDescription, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.VendorIdDescription));
            properties.Add(DmiProperty.TpmDevice.MajorSpecVersion, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.MajorSpecVersion));
            properties.Add(DmiProperty.TpmDevice.MinorSpecVersion, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.MinorSpecVersion));
            properties.Add(DmiProperty.TpmDevice.FirmwareVersion, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.FirmwareVersion));
            properties.Add(DmiProperty.TpmDevice.Description, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.Description));
            properties.Add(DmiProperty.TpmDevice.Characteristics, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.Characteristics));
            properties.Add(DmiProperty.TpmDevice.OemDefined, SmbiosStructure.GetPropertyValue(SmbiosProperty.TpmDevice.OemDefined));
        }
Ejemplo n.º 23
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.MemoryChannel.ChannelType, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryChannel.ChannelType));
            properties.Add(DmiProperty.MemoryChannel.MaximunChannelLoad, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryChannel.MaximumChannelLoad));

            object devices = SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryChannel.Devices);

            if (devices != null)
            {
                properties.Add(DmiProperty.MemoryChannel.Devices, new DmiMemoryChannelElementCollection((MemoryChannelElementCollection)devices));
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            properties.Add(DmiProperty.ManagementControllerHostInterface.InterfaceType, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementControllerHostInterface.InterfaceType));

            object interfaceTypeSpecificData = SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementControllerHostInterface.InterfaceTypeSpecificData);

            if (interfaceTypeSpecificData != null)
            {
                properties.Add(DmiProperty.ManagementControllerHostInterface.InterfaceTypeSpecificData, interfaceTypeSpecificData);
            }

            object protocols = SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementControllerHostInterface.Protocols);

            if (protocols != null)
            {
                properties.Add(DmiProperty.ManagementControllerHostInterface.Protocols, new DmiManagementControllerHostInterfaceProtocolRecordsCollection((ManagementControllerHostInterfaceProtocolRecordsCollection)protocols));
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.ManagementDeviceComponent.Description, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDeviceComponent.Description));
            properties.Add(DmiProperty.ManagementDeviceComponent.ComponentHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDeviceComponent.ComponentHandle));

            ushort thresholdHandle = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.ManagementDeviceComponent.ThresholdHandle);

            if (thresholdHandle != 0xffff)
            {
                properties.Add(DmiProperty.ManagementDeviceComponent.ThresholdHandle, thresholdHandle);
            }

            properties.Add(DmiProperty.ManagementDeviceComponent.ManagementDeviceHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.ManagementDeviceComponent.ManagementDeviceHandle));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.v21)
            {
                return;
            }

            properties.Add(DmiProperty.MemoryDeviceMappedAddress.MemoryDeviceHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.MemoryDeviceHandle));
            properties.Add(DmiProperty.MemoryDeviceMappedAddress.MemoryArrayMappedAddressHandle, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.MemoryArrayMappedAddressHandle));
            properties.Add(DmiProperty.MemoryDeviceMappedAddress.PartitionRowPosition, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.PartitionRowPosition));
            properties.Add(DmiProperty.MemoryDeviceMappedAddress.InterleavePosition, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.InterleavePosition));
            properties.Add(DmiProperty.MemoryDeviceMappedAddress.InterleavedDataDepth, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.InterleavedDataDepth));

            uint startingAddress = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.MemoryDeviceMappedAddress.StartingAddress);

            if (startingAddress == 0xffffffff)
            {
                if (ImplementedVersion >= DmiStructureVersion.v27)
                {
                    object extendedStartingAddress = SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.ExtendedStartingAddress);
                    properties.Add(DmiProperty.MemoryDeviceMappedAddress.StartingAddress, extendedStartingAddress);
                }
            }
            else
            {
                properties.Add(DmiProperty.MemoryDeviceMappedAddress.StartingAddress, (ulong)startingAddress * (ulong)1024);
            }

            uint endingAddress = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.MemoryDeviceMappedAddress.EndingAddress);

            if (endingAddress == 0xffffffff)
            {
                if (ImplementedVersion >= DmiStructureVersion.v27)
                {
                    object extendedEndingAddress = SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryDeviceMappedAddress.ExtendedEndingAddress);
                    properties.Add(DmiProperty.MemoryDeviceMappedAddress.EndingAddress, extendedEndingAddress);
                }
            }
            else
            {
                properties.Add(DmiProperty.MemoryDeviceMappedAddress.EndingAddress, (ulong)endingAddress * (ulong)1024);
            }
        }
Ejemplo n.º 27
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            properties.Add(DmiProperty.MemoryModule.SocketDesignation, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.SocketDesignation));
            properties.Add(DmiProperty.MemoryModule.BankConnections, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.BankConnections));

            object currentSpeedProperty = SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.CurrentSpeed);

            if (currentSpeedProperty != null)
            {
                byte currentSpeed = (byte)currentSpeedProperty;
                if (currentSpeed != 0x00)
                {
                    properties.Add(DmiProperty.MemoryModule.CurrentSpeed, currentSpeed);
                }
            }

            properties.Add(DmiProperty.MemoryModule.CurrentMemoryType, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.CurrentMemoryType));
            properties.Add(DmiProperty.MemoryModule.InstalledSize, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.InstalledSize));
            properties.Add(DmiProperty.MemoryModule.EnabledSize, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.EnabledSize));
            properties.Add(DmiProperty.MemoryModule.ErrorStatus, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryModule.ErrorStatus));
        }
Ejemplo n.º 28
0
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            ushort resetCount = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemReset.ResetCount);

            if (resetCount != 0xffff)
            {
                properties.Add(DmiProperty.SystemReset.ResetCount, resetCount);
            }

            ushort resetLimit = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemReset.ResetLimit);

            if (resetLimit != 0xffff)
            {
                properties.Add(DmiProperty.SystemReset.ResetLimit, resetLimit);
            }

            ushort timerInterval = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemReset.TimerInterval);

            if (timerInterval != 0xffff)
            {
                properties.Add(DmiProperty.SystemReset.TimerInterval, timerInterval);
            }

            ushort timeOut = SmbiosStructure.GetPropertyValue <ushort>(SmbiosProperty.SystemReset.Timeout);

            if (timeOut != 0xffff)
            {
                properties.Add(DmiProperty.SystemReset.Timeout, timeOut);
            }

            properties.Add(DmiProperty.SystemReset.Capabilities.Status, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemReset.Capabilities.Status));
            properties.Add(DmiProperty.SystemReset.Capabilities.BootOption, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemReset.Capabilities.BootOption));
            properties.Add(DmiProperty.SystemReset.Capabilities.BootOptionOnLimit, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemReset.Capabilities.BootOptionOnLimit));
            properties.Add(DmiProperty.SystemReset.Capabilities.WatchdogTimer, SmbiosStructure.GetPropertyValue(SmbiosProperty.SystemReset.Capabilities.WatchdogTimer));
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            if (ImplementedVersion < DmiStructureVersion.Latest)
            {
                return;
            }

            properties.Add(DmiProperty.BitMemoryError64.ErrorType, SmbiosStructure.GetPropertyValue(SmbiosProperty.BitMemoryError64.ErrorType));
            properties.Add(DmiProperty.BitMemoryError64.ErrorGranularity, SmbiosStructure.GetPropertyValue(SmbiosProperty.BitMemoryError64.ErrorGranularity));
            properties.Add(DmiProperty.BitMemoryError64.ErrorOperation, SmbiosStructure.GetPropertyValue(SmbiosProperty.BitMemoryError64.ErrorOperation));

            uint vendorSyndrome = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.BitMemoryError64.VendorSyndrome);

            if (vendorSyndrome != 0x00000000)
            {
                properties.Add(DmiProperty.BitMemoryError64.VendorSyndrome, vendorSyndrome);
            }

            ulong busErrorAddress = SmbiosStructure.GetPropertyValue <ulong>(SmbiosProperty.BitMemoryError64.MemoryArrayErrorAddress);

            if (busErrorAddress != 0x8000000000000000)
            {
                properties.Add(DmiProperty.BitMemoryError64.MemoryArrayErrorAddress, busErrorAddress);
            }

            ulong deviceErrorAddress = SmbiosStructure.GetPropertyValue <ulong>(SmbiosProperty.BitMemoryError64.DeviceErrorAddress);

            if (deviceErrorAddress != 0x8000000000000000)
            {
                properties.Add(DmiProperty.BitMemoryError64.DeviceErrorAddress, deviceErrorAddress);
            }

            uint errorResolution = SmbiosStructure.GetPropertyValue <uint>(SmbiosProperty.BitMemoryError64.ErrorResolution);

            if (errorResolution != 0x80000000)
            {
                properties.Add(DmiProperty.BitMemoryError64.ErrorResolution, errorResolution);
            }
        }
        /// <inheritdoc/>
        /// <summary>
        /// Populates the property collection for this structure.
        /// </summary>
        /// <param name="properties">Collection of properties of this structure.</param>
        protected override void PopulateProperties(DmiClassPropertiesTable properties)
        {
            properties.Add(DmiProperty.MemoryController.ErrorDetectingMethod, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.ErrorDetectingMethod));
            properties.Add(DmiProperty.MemoryController.ErrorCorrectingCapabilities, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.ErrorCorrectingCapabilities));
            properties.Add(DmiProperty.MemoryController.SupportedInterleave, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.SupportedInterleave));
            properties.Add(DmiProperty.MemoryController.CurrentInterleave, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.CurrentInterleave));
            properties.Add(DmiProperty.MemoryController.MaximumMemoryModuleSize, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.MaximumMemoryModuleSize));
            properties.Add(DmiProperty.MemoryController.SupportedSpeeds, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.SupportedSpeeds));
            properties.Add(DmiProperty.MemoryController.SupportedMemoryTypes, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.SupportedMemoryTypes));
            properties.Add(DmiProperty.MemoryController.MemoryModuleVoltages, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.MemoryModuleVoltages));
            properties.Add(DmiProperty.MemoryController.NumberMemorySlots, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.NumberMemorySlots));

            object containedMemoryModules = SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.ContainedMemoryModules);

            if (containedMemoryModules == null)
            {
                return;
            }

            properties.Add(DmiProperty.MemoryController.ContainedMemoryModules, new DmiMemoryControllerContainedElementCollection((MemoryControllerContainedElementCollection)containedMemoryModules));
            properties.Add(DmiProperty.MemoryController.EnabledErrorCorrectingCapabilities, SmbiosStructure.GetPropertyValue(SmbiosProperty.MemoryController.EnabledErrorCorrectingCapabilities));
        }