/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.ManagementDeviceComponent.Description, Description); properties.Add(SmbiosProperty.ManagementDeviceComponent.ManagementDeviceHandle, ManagementDeviceHandle); properties.Add(SmbiosProperty.ManagementDeviceComponent.ComponentHandle, ComponentHandle); properties.Add(SmbiosProperty.ManagementDeviceComponent.ThresholdHandle, ThresholdHandle); }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region versions var tpmCapabilityVendorIdEntry = GetTpmCapabilityVendorId(RawVendorId); properties.Add(DmiProperty.TpmDevice.VendorId, tpmCapabilityVendorIdEntry.ASCII); properties.Add(DmiProperty.TpmDevice.VendorIdDescription, tpmCapabilityVendorIdEntry.Description); properties.Add(DmiProperty.TpmDevice.MajorSpecVersion, MajorSpecVersion); properties.Add(DmiProperty.TpmDevice.MinorSpecVersion, MinorSpecVersion); var firmwareVersion = TpmFirmwareVersion.Unknown; if (MajorSpecVersion >= 0x01 && MajorSpecVersion <= 0x02) { firmwareVersion = MajorSpecVersion == 0x01 ? TpmFirmwareVersion.Parse(RawFirmwareVersion1) : new TpmFirmwareVersion { MajorVersion = GetDoubleWord(0x0a), MinorVersion = GetDoubleWord(0x0e) }; } properties.Add(DmiProperty.TpmDevice.FirmwareVersion, firmwareVersion); properties.Add(DmiProperty.TpmDevice.Description, DescriptionVersion2); properties.Add(DmiProperty.TpmDevice.Characteristics, GetTpmCharacteristics(Characteristics)); properties.Add(DmiProperty.TpmDevice.OemDefined, OemDefined); #endregion }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.BitMemoryErrorInformation64.ErrorType, GetErrorType(ErrorType)); properties.Add(DmiProperty.BitMemoryErrorInformation64.ErrorGranularity, GetErrorGranularity(ErrorGranularity)); properties.Add(DmiProperty.BitMemoryErrorInformation64.ErrorOperation, GetErrorOperation(ErrorOperation)); if (CrcData != 0x00000000) { properties.Add(DmiProperty.BitMemoryErrorInformation64.VendorSyndrome, CrcData); } if (MemoryArrayErrorAddress != 0x8000000000000000) { properties.Add(DmiProperty.BitMemoryErrorInformation64.BusErrorAddress, MemoryArrayErrorAddress); } if (DeviceErrorAddress != 0x8000000000000000) { properties.Add(DmiProperty.BitMemoryErrorInformation64.DeviceErrorAddress, DeviceErrorAddress); } if (ErrorResolution != 0x80000000) { properties.Add(DmiProperty.BitMemoryErrorInformation64.ErrorResolution, ErrorResolution); } #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(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.Chassis.Elements.Min, Min); properties.Add(SmbiosProperty.Chassis.Elements.Max, Max); properties.Add(SmbiosProperty.Chassis.Elements.TypeSelect, TypeSelect); properties.Add(SmbiosProperty.Chassis.Elements.ItemType, ItemType); }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.PhysicalMemoryArray.Location, GetLocation(Location)); properties.Add(DmiProperty.PhysicalMemoryArray.Use, GetUse(Use)); properties.Add(DmiProperty.PhysicalMemoryArray.MemoryErrorCorrection, GetErrorCorrectionTypes(ErrorCorrection)); properties.Add(DmiProperty.PhysicalMemoryArray.MemoryErrorInformationHandle, GetErrorHandle(ErrorInformationHandle)); properties.Add(DmiProperty.PhysicalMemoryArray.NumberOfMemoryDevices, NumberOfMemoryDevices); var maximumCapacity = MaximumCapacity; if (maximumCapacity != 0x08000000) { properties.Add(DmiProperty.PhysicalMemoryArray.MaximumCapacity, maximumCapacity); } else { if (HeaderInfo.Length == 0x17) { properties.Add(DmiProperty.PhysicalMemoryArray.MaximumCapacity, ExtendedMaximumCapacity); } } #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(SmbiosPropertiesTable properties) { if (StartingAddress == 0xffffffff) { if (StructureInfo.Length >= 0x14) { ulong extendedStartingAddress = ExtendedStartingAddress; properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.StartingAddress, extendedStartingAddress); } } else { properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.StartingAddress, StartingAddress); } if (EndingAddress == 0xffffffff) { if (StructureInfo.Length >= 0x1c) { ulong extendedEndingAddress = ExtendedEndingAddress; properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.EndingAddress, extendedEndingAddress); } } else { properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.EndingAddress, EndingAddress); } properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.MemoryDeviceHandle, MemoryDeviceHandle); properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.MemoryArrayMappedAddressHandle, MappedAddressHandle); properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.PartitionRowPosition, PartitionRowPosition); properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.InterleavePosition, InterleavePosition); properties.Add(SmbiosProperty.MemoryDeviceMappedAddress.InterleavedDataDepth, InterleavedDataDepth); }
/// <inheritdoc/> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { #region 2.0+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v20) { properties.Add(SmbiosProperty.System.Manufacturer, Manufacturer); properties.Add(SmbiosProperty.System.ProductName, ProductName); properties.Add(SmbiosProperty.System.Version, Version); properties.Add(SmbiosProperty.System.SerialNumber, SerialNumber); } #endregion #region 2.1+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v21) { properties.Add(SmbiosProperty.System.WakeUpType, GetWakeUpType(WakeUpType)); byte[] uuid = StructureInfo.RawData.Extract(0x08, 0x10); properties.Add(SmbiosProperty.System.UUID, GetUuid(uuid, SmbiosVersion)); } #endregion #region 2.4+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v24) { properties.Add(SmbiosProperty.System.SkuNumber, Sku); properties.Add(SmbiosProperty.System.Family, Family); } #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(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.ManagementDevice.Description, Description); properties.Add(SmbiosProperty.ManagementDevice.Type, GetDeviceType(Type)); properties.Add(SmbiosProperty.ManagementDevice.Address, Address); properties.Add(SmbiosProperty.ManagementDevice.AddressType, GetDeviceAddressType(AddressType)); }
/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { #region 2.0+ if (StructureInfo.Length >= 0x0c) { properties.Add(SmbiosProperty.SystemSlots.SlotDesignation, SlotDesignation); properties.Add(SmbiosProperty.SystemSlots.SlotType, GetSlotType(SlotType)); properties.Add(SmbiosProperty.SystemSlots.SlotDataBusWidth, GetDataBusWidth(DataWidth)); properties.Add(SmbiosProperty.SystemSlots.CurrentUsage, GetCurrentUsage(CurrentUsage)); properties.Add(SmbiosProperty.SystemSlots.SlotLength, GetLength(Length)); properties.Add(SmbiosProperty.SystemSlots.SlotId, GetId(SlotType, Adapter, Socket)); properties.Add(SmbiosProperty.SystemSlots.Characteristics, GetCharacteristics(Characteristics1, 0xff)); } #endregion #region 2.1+ if (StructureInfo.Length >= 0x0d) { properties[SmbiosProperty.SystemSlots.Characteristics] = GetCharacteristics(Characteristics1, Characteristics2); } #endregion #region 2.6+ if (StructureInfo.Length >= 0x11) { properties.Add(SmbiosProperty.SystemSlots.SegmentBusFunction, GetSegmentBusFunction(SegmentBusFunction)); properties.Add(SmbiosProperty.SystemSlots.BusDeviceFunction, GetBusDeviceFunction(Bus, Device, Function)); } #endregion }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.SystemReset.Capabilities.Status, Status); properties.Add(DmiProperty.SystemReset.Capabilities.BootOption, GetBootOption(BootOption)); properties.Add(DmiProperty.SystemReset.Capabilities.BootOptionOnLimit, GetBootOption(BootOptionOnLimit)); properties.Add(DmiProperty.SystemReset.Capabilities.WatchdogTimer, WatchdogTimer); if (ResetCount != 0xffff) { properties.Add(DmiProperty.SystemReset.ResetCount, ResetCount); } if (ResetLimit != 0xffff) { properties.Add(DmiProperty.SystemReset.ResetLimit, ResetLimit); } if (TimerInterval != 0xffff) { properties.Add(DmiProperty.SystemReset.TimerInterval, TimerInterval); } if (TimeOut != 0xffff) { properties.Add(DmiProperty.SystemReset.Timeout, TimeOut); } #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(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.FrontPanelResetStatus, GetSettings(FrontPanelResetStatus)); properties.Add(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.AdministratorPasswordStatus, GetSettings(AdministratorPasswordStatus)); properties.Add(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.KeyboardPasswordStatus, GetSettings(KeyboardPasswordStatus)); properties.Add(SmbiosProperty.HardwareSecurity.HardwareSecuritySettings.PowerOnPasswordStatus, GetSettings(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(SmbiosPropertiesTable properties) { if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest) { return; } properties.Add(SmbiosProperty.IpmiDevice.InterfaceType, GetInterfaceType(InterfaceType)); properties.Add(SmbiosProperty.IpmiDevice.SpecificationRevision, SpecificationRevision); properties.Add(SmbiosProperty.IpmiDevice.I2CSlaveAddress, I2CSlaveAddress); properties.Add(SmbiosProperty.IpmiDevice.NVStorageDeviceAddress, NVStorageDeviceAddress); properties.Add(SmbiosProperty.IpmiDevice.BaseAddress, BaseAddress); if (StructureInfo.Length >= 0x11) { if (BaseAddressModifier != 0x00) { properties.Add(SmbiosProperty.IpmiDevice.BaseAdressModifier.RegisterSpacing, GetRegisterSpacing(RegisterSpacing)); properties.Add(SmbiosProperty.IpmiDevice.BaseAdressModifier.LsBit, LsBit); properties.Add(SmbiosProperty.IpmiDevice.Interrupt.SpecifiedInfo, SpecifiedInfo); properties.Add(SmbiosProperty.IpmiDevice.Interrupt.Polarity, Polarity); properties.Add(SmbiosProperty.IpmiDevice.Interrupt.TriggerMode, TriggerMode); } } if (StructureInfo.Length >= 0x12) { properties.Add(SmbiosProperty.IpmiDevice.InterruptNumber, InterruptNumber); } }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region versions #region 2.0+ if (HeaderInfo.Length >= 0x0f) { properties.Add(DmiProperty.Cache.SocketDesignation, SocketDesignation); properties.Add(DmiProperty.Cache.CacheConfiguration.OperationalMode, GetOperationalMode(OperationalMode)); properties.Add(DmiProperty.Cache.CacheConfiguration.CacheEnabled, Enabled); properties.Add(DmiProperty.Cache.CacheConfiguration.Location, GetLocation(Location)); properties.Add(DmiProperty.Cache.CacheConfiguration.CacheSocketed, CacheSocketed); properties.Add(DmiProperty.Cache.CacheConfiguration.Level, CacheLevel); properties.Add(DmiProperty.Cache.MaximumCacheSize, GetSize(MaximumCacheSize)); if (InstalledSize != 0x00) { properties.Add(DmiProperty.Cache.InstalledCacheSize, (int?)GetSize(InstalledSize)); } properties.Add(DmiProperty.Cache.SupportedSramTypes, GetTypes(SupportedSramType)); ReadOnlyCollection <string> types = GetTypes(CurrentSramType); string currentType = types[0]; properties.Add(DmiProperty.Cache.CurrentSramType, currentType); } #endregion #region 2.1+ if (HeaderInfo.Length >= 0x10) { if (CacheSpeed != 0x00) { properties.Add(DmiProperty.Cache.CacheSpeed, CacheSpeed); } properties.Add(DmiProperty.Cache.ErrorCorrectionType, GetErrorCorrection(ErrorCorrectionType)); properties.Add(DmiProperty.Cache.SystemCacheType, GetSystemCacheType(SystemCacheType)); properties.Add(DmiProperty.Cache.Associativity, GetAssociativity(Associativity)); } #endregion #region 3.1.0+ if (HeaderInfo.Length >= 0x14) { properties.Add(DmiProperty.Cache.MaximumCacheSize2, GetSize(MaximumCacheSize2)); if (InstalledCacheSize2 != 0x00) { properties.Add(DmiProperty.Cache.InstalledCacheSize2, (int?)GetSize(InstalledCacheSize2)); } } #endregion #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(SmbiosPropertiesTable properties) { #region 2.0+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v20) { properties.Add(SmbiosProperty.Bios.Vendor, Vendor); properties.Add(SmbiosProperty.Bios.BiosVersion, BiosVersion); properties.Add(SmbiosProperty.Bios.BiosStartSegment, BiosStartSegment); properties.Add(SmbiosProperty.Bios.BiosReleaseDate, BiosReleaseDate); properties.Add(SmbiosProperty.Bios.BiosRomSize, RomSize); properties.Add(SmbiosProperty.Bios.Characteristics, GetCharacteristics(Characteristics)); } #endregion #region 2.4+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v24) { properties.Add(SmbiosProperty.Bios.CharacteristicsExtensionByte1, GetExtensionByte1(ExtensionByte1)); properties.Add(SmbiosProperty.Bios.CharacteristicsExtensionByte2, GetExtensionByte2(ExtensionByte2)); properties.Add(SmbiosProperty.Bios.SystemBiosMajorRelease, SystemBiosMajorRelease); properties.Add(SmbiosProperty.Bios.SystemBiosMinorRelease, SystemBiosMinorRelease); properties.Add(SmbiosProperty.Bios.FirmwareMajorRelease, FirmwareMajorRelease); properties.Add(SmbiosProperty.Bios.FirmwareMinorRelease, FirmwareMinorRelease); } #endregion #region 3.1+ if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v31) { properties.Add(SmbiosProperty.Bios.ExtendedBiosRomSize, ExtendedBiosRomSize); properties.Add(SmbiosProperty.Bios.BiosRomSizeUnit, ExtendedBiosRomSizeUnits); } #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(SmbiosPropertiesTable properties) { if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest) { return; } TpmCapabilityVendorId tpmCapabilityVendorIdEntry = GetTpmCapabilityVendorId(RawVendorId); properties.Add(SmbiosProperty.TpmDevice.VendorId, tpmCapabilityVendorIdEntry.ASCII); properties.Add(SmbiosProperty.TpmDevice.VendorIdDescription, tpmCapabilityVendorIdEntry.Description); properties.Add(SmbiosProperty.TpmDevice.MajorSpecVersion, MajorSpecVersion); properties.Add(SmbiosProperty.TpmDevice.MinorSpecVersion, MinorSpecVersion); var firmwareVersion = TpmFirmwareVersion.Unknown; if (MajorSpecVersion >= 0x01 && MajorSpecVersion <= 0x02) { firmwareVersion = MajorSpecVersion == 0x01 ? TpmFirmwareVersion.Parse(RawFirmwareVersion1) : new TpmFirmwareVersion { MajorVersion = (int)Reader.GetDoubleWord(0x0a), MinorVersion = (int)Reader.GetDoubleWord(0x0e) }; } properties.Add(SmbiosProperty.TpmDevice.FirmwareVersion, firmwareVersion); properties.Add(SmbiosProperty.TpmDevice.Description, DescriptionVersion2); properties.Add(SmbiosProperty.TpmDevice.Characteristics, GetTpmCharacteristics(Characteristics)); properties.Add(SmbiosProperty.TpmDevice.OemDefined, OemDefined); }
/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.MemoryController.ErrorDetectingMethod, GetErrorDetectingMethod(ErrorDetectingMethod)); properties.Add(SmbiosProperty.MemoryController.ErrorCorrectingCapabilities, GetErrorCorrectingCapability(ErrorCorrectingCapabilities)); properties.Add(SmbiosProperty.MemoryController.SupportedInterleave, GetControllerInterleave(SupportedInterleave)); properties.Add(SmbiosProperty.MemoryController.CurrentInterleave, GetControllerInterleave(CurrentInterleave)); properties.Add(SmbiosProperty.MemoryController.MaximumMemoryModuleSize, MaximumMemoryModuleSize); properties.Add(SmbiosProperty.MemoryController.SupportedSpeeds, GetControllerSupportedSpeeds(SupportedSpeeds)); properties.Add(SmbiosProperty.MemoryController.SupportedMemoryTypes, GetControllerSupportedTypes(SupportedMemoryTypes)); properties.Add(SmbiosProperty.MemoryController.MemoryModuleVoltages, GetControllerModuleVoltages(MemoryModuleVoltages)); byte n = NumberMemorySlots; properties.Add(SmbiosProperty.MemoryController.NumberMemorySlots, n); if (n == 0x00) { return; } int m = n << 1; byte[] containedElementsArray = StructureInfo.RawData.Extract(0x0f, m); IEnumerable <int> containedElements = GetContainedMemoryModules(containedElementsArray); properties.Add(SmbiosProperty.MemoryController.ContainedMemoryModules, new MemoryControllerContainedElementCollection(containedElements)); if (StructureInfo.Length >= 0x10 + m) { properties.Add(SmbiosProperty.MemoryController.EnabledErrorCorrectingCapabilities, GetErrorCorrectingCapability(StructureInfo.RawData[0x0f + m])); } }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.MemoryChannel.ChannelType, GetChannelType(ChannelType)); properties.Add(DmiProperty.MemoryChannel.MaximunChannelLoad, MaximunChannelLoad); byte n = Count; if (n != 0x00) { if (HeaderInfo.Length >= 0x08) { byte[] containedElementsArray = new byte[n * 3]; Array.Copy(HeaderInfo.RawData, 0x07, containedElementsArray, 0, n * 3); IEnumerable <MemoryChannelElement> containedElements = GetContainedElements(containedElementsArray, n); properties.Add(DmiProperty.MemoryChannel.Devices, new MemoryChannelElementCollection(containedElements)); } } #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(SmbiosPropertiesTable properties) { if (StartingAddress == 0xffffffff) { if (StructureInfo.Length >= 0x10) { ulong extendedStartingAddress = ExtendedStartingAddress; properties.Add(SmbiosProperty.MemoryArrayMappedAddress.ExtendedStartingAddress, extendedStartingAddress); } } else { properties.Add(SmbiosProperty.MemoryArrayMappedAddress.ExtendedStartingAddress, StartingAddress); } if (EndingAddress == 0xffffffff) { if (StructureInfo.Length >= 0x18) { ulong extendedEndingAddress = ExtendedEndingAddress; properties.Add(SmbiosProperty.MemoryArrayMappedAddress.ExtendedEndingAddress, extendedEndingAddress); } } else { properties.Add(SmbiosProperty.MemoryArrayMappedAddress.ExtendedEndingAddress, EndingAddress); } properties.Add(SmbiosProperty.MemoryArrayMappedAddress.MemoryArrayHandle, MemoryArrayHandle); properties.Add(SmbiosProperty.MemoryArrayMappedAddress.PartitionWidth, PartitionWidth); }
/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.SystemPowerSupply.IsRedundant, IsRedundant); properties.Add(SmbiosProperty.SystemPowerSupply.Location, Location); properties.Add(SmbiosProperty.SystemPowerSupply.DeviceName, DeviceName); properties.Add(SmbiosProperty.SystemPowerSupply.Manufacturer, Manufacturer); properties.Add(SmbiosProperty.SystemPowerSupply.SerialNumber, SerialNumber); properties.Add(SmbiosProperty.SystemPowerSupply.AssetTagNumber, AssetTagNumber); properties.Add(SmbiosProperty.SystemPowerSupply.ModelPartNumber, ModelPartNumber); properties.Add(SmbiosProperty.SystemPowerSupply.RevisionLevel, RevisionLevel); properties.Add(SmbiosProperty.SystemPowerSupply.MaxPowerCapacity, MaxPowerCapacity); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.SupplyType, GetSupplyType(SupplyType)); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.Status, GetStatus(Status)); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.InputVoltageRange, GetInputVoltageRange(InputVoltageRange)); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.IsPlugged, IsPlugged); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.IsPresent, IsPresent); properties.Add(SmbiosProperty.SystemPowerSupply.Characteristics.IsHotReplaceable, IsHotReplaceable); if (StructureInfo.Length >= 0x11) { properties.Add(SmbiosProperty.SystemPowerSupply.InputVoltageProbeHandle, InputVoltageProbeHandle); } if (StructureInfo.Length >= 0x13) { properties.Add(SmbiosProperty.SystemPowerSupply.CoolingDeviceHandle, CoolingDeviceHandle); } if (StructureInfo.Length >= 0x15) { properties.Add(SmbiosProperty.SystemPowerSupply.InputCurrentProbeHandle, InputCurrentProbeHandle); } }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region versions #region 2.0+ - 3.1.1 properties.Add(DmiProperty.ManagementControllerHostInterface.InterfaceType, GetInterfaceType(InterfaceType)); #endregion #region 3.2+ if (HeaderInfo.Length >= 0x07) { properties.Add(DmiProperty.ManagementControllerHostInterface.InterfaceTypeSpecificData, InterfaceTypeSpecificData); } if (HeaderInfo.Length >= 0x08 + InterfaceTypeSpecificDataLenght) { properties.Add(DmiProperty.ManagementControllerHostInterface.Protocols, new ManagementControllerHostInterfaceProtocolRecordsCollection(GetProtocolRecords())); } #endregion #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(SmbiosPropertiesTable properties) { if (StructureInfo.Length >= 0x05) { properties.Add(SmbiosProperty.CoolingDevice.TemperatureProbeHandle, TemperatureProbeHandle); } if (StructureInfo.Length >= 0x07) { properties.Add(SmbiosProperty.CoolingDevice.DeviceTypeAndStatus.Status, GetStatus(Status)); properties.Add(SmbiosProperty.CoolingDevice.DeviceTypeAndStatus.DeviceType, GetDeviceType(DeviceType)); } if (StructureInfo.Length >= 0x08) { properties.Add(SmbiosProperty.CoolingDevice.CoolingUnitGroup, CoolingUnitGroup); } if (StructureInfo.Length >= 0x09) { properties.Add(SmbiosProperty.CoolingDevice.OemDefined, OemDefined); } if (StructureInfo.Length >= 0x0d) { properties.Add(SmbiosProperty.CoolingDevice.NominalSpeed, NominalSpeed); } if (StructureInfo.Length >= 0x0f) { properties.Add(SmbiosProperty.CoolingDevice.Description, Description); } }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.MemoryController.ErrorDetectingMethod, GetErrorDetectingMethod(ErrorDetectingMethod)); properties.Add(DmiProperty.MemoryController.ErrorCorrectingCapabilities, GetErrorCorrectingCapability(ErrorCorrectingCapabilities)); properties.Add(DmiProperty.MemoryController.SupportedInterleave, GetControllerInterleave(SupportedInterleave)); properties.Add(DmiProperty.MemoryController.CurrentInterleave, GetControllerInterleave(CurrentInterleave)); properties.Add(DmiProperty.MemoryController.MaximumMemoryModuleSize, MaximumMemoryModuleSize); properties.Add(DmiProperty.MemoryController.SupportedSpeeds, GetControllerSupportedSpeeds(SupportedSpeeds)); properties.Add(DmiProperty.MemoryController.SupportedMemoryTypes, GetControllerSupportedTypes(SupportedMemoryTypes)); properties.Add(DmiProperty.MemoryController.MemoryModuleVoltages, GetControllerModuleVoltages(MemoryModuleVoltages)); byte n = NumberMemorySlots; properties.Add(DmiProperty.MemoryController.NumberMemorySlots, n); if (n != 0x00) { int m = n << 1; byte[] containedElementsArray = new byte[m]; Array.Copy(HeaderInfo.RawData, 0x0f, containedElementsArray, 0, m); IEnumerable <int> containedElements = GetContainedMemoryModules(containedElementsArray); properties.Add(DmiProperty.MemoryController.ContainedMemoryModules, new MemoryControllerContainedElementCollection(containedElements)); if (HeaderInfo.Length >= 0x10 + m) { properties.Add(DmiProperty.MemoryController.EnabledErrorCorrectingCapabilities, GetErrorCorrectingCapability(HeaderInfo.RawData[0x0f + m])); } } #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(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.PortConnector.InternalReferenceDesignator, InternalReference); properties.Add(SmbiosProperty.PortConnector.InternalConnectorType, GetConnectorType(InternalConnectorType)); properties.Add(SmbiosProperty.PortConnector.ExternalReferenceDesignator, ExternalReference); properties.Add(SmbiosProperty.PortConnector.ExternalConnectorType, GetConnectorType(ExternalConnectorType)); properties.Add(SmbiosProperty.PortConnector.PortType, GetPortType(PortType)); }
/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.SystemPowerControls.Month, Month); properties.Add(SmbiosProperty.SystemPowerControls.Day, Day); properties.Add(SmbiosProperty.SystemPowerControls.Hour, Hour); properties.Add(SmbiosProperty.SystemPowerControls.Minute, Minute); properties.Add(SmbiosProperty.SystemPowerControls.Second, 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(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.AdditionalInformation.Entry.EntryLength, EntryLength); properties.Add(SmbiosProperty.AdditionalInformation.Entry.ReferencedHandle, ReferencedHandle); properties.Add(SmbiosProperty.AdditionalInformation.Entry.ReferencedOffset, ReferencedOffset); properties.Add(SmbiosProperty.AdditionalInformation.Entry.StringValue, StringValue); properties.Add(SmbiosProperty.AdditionalInformation.Entry.Value, Value); }
/// <inheritdoc /> /// <summary> /// Gets the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void Parse(SmbiosPropertiesTable properties) { #region validate parameter/s SentinelHelper.ArgumentNull(properties); #endregion #region values properties.Add(DmiProperty.BaseBoard.Manufacturer, Manufacturer); properties.Add(DmiProperty.BaseBoard.Product, Product); properties.Add(DmiProperty.BaseBoard.Version, Version); properties.Add(DmiProperty.BaseBoard.SerialNumber, SerialNumber); if (HeaderInfo.Length >= 0x09) { properties.Add(DmiProperty.BaseBoard.AssetTag, AssetTag); } if (HeaderInfo.Length >= 0x0a) { properties.Add(DmiProperty.BaseBoard.Features.IsHotSwappable, IsHotSwappable); properties.Add(DmiProperty.BaseBoard.Features.IsReplaceable, IsReplaceable); properties.Add(DmiProperty.BaseBoard.Features.IsRemovable, IsRemovable); properties.Add(DmiProperty.BaseBoard.Features.RequiredDaughterBoard, RequiredDaughterBoard); properties.Add(DmiProperty.BaseBoard.Features.IsHostingBoard, IsHostingBoard); } if (HeaderInfo.Length >= 0x0b) { properties.Add(DmiProperty.BaseBoard.LocationInChassis, LocationInChassis); } if (HeaderInfo.Length >= 0x0c) { properties.Add(DmiProperty.BaseBoard.ChassisHandle, ChassisHandle); } if (HeaderInfo.Length >= 0x0d) { properties.Add(DmiProperty.BaseBoard.BoardType, GetBoardType(BoardType)); } if (HeaderInfo.Length >= 0x0e) { byte n = NumberOfContainedObjectHandles; properties.Add(DmiProperty.BaseBoard.NumberOfContainedObjectHandles, n); if (n != 0x00 && HeaderInfo.Length >= 0x0f) { var containedElementsArray = new byte[n]; Array.Copy(HeaderInfo.RawData, 0x0f, containedElementsArray, 0, n); IEnumerable <SmbiosStructure> containedElements = GetContainedElements(containedElementsArray); properties.Add(DmiProperty.BaseBoard.ContainedElements, new BaseBoardContainedElementCollection(containedElements)); } } #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(SmbiosPropertiesTable properties) { if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest) { return; } properties.Add(SmbiosProperty.SystemBoot.BootStatus, GetBootStatus(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(SmbiosPropertiesTable properties) { int count = Count; if (count != 0) { properties.Add(SmbiosProperty.OemStrings.Values, GetValues(count)); } }
/// <inheritdoc /> /// <summary> /// Populates the property collection for this structure. /// </summary> /// <param name="properties">Collection of properties of this structure.</param> protected override void PopulateProperties(SmbiosPropertiesTable properties) { properties.Add(SmbiosProperty.ManagementDeviceThresholdData.LowerNonCritical, LowerNonCritical); properties.Add(SmbiosProperty.ManagementDeviceThresholdData.UpperNonCritical, UpperNonCritical); properties.Add(SmbiosProperty.ManagementDeviceThresholdData.LowerCritical, LowerCritical); properties.Add(SmbiosProperty.ManagementDeviceThresholdData.UpperCritical, UpperCritical); properties.Add(SmbiosProperty.ManagementDeviceThresholdData.LowerNonRecoverable, LowerNonRecoverable); properties.Add(SmbiosProperty.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(SmbiosPropertiesTable properties) { int count = Count; if (count != 0) { properties.Add(SmbiosProperty.SystemConfigurationOptions.Values, GetValues(count)); } }