コード例 #1
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(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).ToArray();
                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
        }
コード例 #2
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(SmbiosPropertiesTable properties)
        {
            #region 2.0+
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v20)
            {
                properties.Add(SmbiosProperty.SystemEventLog.LogAreaLength, LogAreaLength);
                properties.Add(SmbiosProperty.SystemEventLog.LogHeaderStartOffset, LogHeaderStartOffset);
                properties.Add(SmbiosProperty.SystemEventLog.DataStartOffset, DataStartOffset);
                properties.Add(SmbiosProperty.SystemEventLog.AccessMethod, GetAccessMethod(AccessMethod));
                properties.Add(SmbiosProperty.SystemEventLog.LogStatus, GetLogStatus(LogStatus));

                if (AccessMethod <= 0x04)
                {
                    properties.Add(SmbiosProperty.SystemEventLog.AccessMethodAddress, GetAccessMethodAddress(AccessMethod, AccessMethodAddress));
                }

                properties.Add(SmbiosProperty.SystemEventLog.LogChangeToken, $"{LogChangeToken:X}");
            }
            #endregion

            #region 2.1+
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v21)
            {
                properties.Add(SmbiosProperty.SystemEventLog.LogHeaderFormat, GetLogHeaderFormat(LogHeaderFormat));
                properties.Add(SmbiosProperty.SystemEventLog.SupportedLogTypeDescriptors, SupportedLogTypeDescriptors);

                var n = SupportedLogTypeDescriptors * LengthTypeDescriptor;
                if (StructureInfo.Length > 0x17 + n)
                {
                    properties.Add(SmbiosProperty.SystemEventLog.ListSupportedEventLogTypeDescriptors, GetListSupportedEventLogTypeDescriptors(Reader.Data.Extract(0x17, n - 1).ToArray()));
                }
            }
            #endregion
        }
コード例 #3
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(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);
 }
コード例 #4
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(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);
            }
        }
コード例 #5
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(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);
            }
        }
コード例 #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(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
        }
コード例 #7
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(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);
        }
コード例 #8
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(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);
 }
コード例 #9
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(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));
 }
コード例 #10
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(SmbiosPropertiesTable properties)
        {
            int count = Count;

            if (count != 0)
            {
                properties.Add(SmbiosProperty.SystemConfigurationOptions.Values, GetValues(count));
            }
        }
コード例 #11
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(SmbiosPropertiesTable properties)
        {
            int count = Count;

            if (count != 0)
            {
                properties.Add(SmbiosProperty.OemStrings.Values, GetValues(count));
            }
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.SystemBoot.BootStatus, GetBootStatus(BootStatus));
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            #region 2.0+
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v20)
            {
                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.StructureVersion >= SmbiosStructureVersion.v21)
            {
                properties[SmbiosProperty.SystemSlots.Characteristics] = GetCharacteristics(Characteristics1, Characteristics2);
            }
            #endregion

            #region 2.6+
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v26)
            {
                properties.Add(SmbiosProperty.SystemSlots.SegmentBusFunction, GetSegmentBusFunction(SegmentBusFunction));
                properties.Add(SmbiosProperty.SystemSlots.BusDeviceFunction, GetBusDeviceFunction(Bus, Device, Function));
            }
            #endregion

            #region 3.2
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v32)
            {
                var slotType    = GetSlotType(SlotType).ToLowerInvariant();
                var canEvaluate = slotType.Contains("agp") || slotType.Contains("pci");
                if (canEvaluate)
                {
                    IEnumerable <PeerDevice> peersDevices = GetPeerElements(RawGroups);
                    properties.Add(SmbiosProperty.SystemSlots.PeerDevices, new PeerDevicesCollection(peersDevices));
                }
            }
            #endregion

            #region 3.4
            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v34)
            {
                if (SlotType == 0xC4)
                {
                    properties.Add(SmbiosProperty.SystemSlots.SlotInformation, $"PCI Express Generation {SlotInformation}");
                }

                properties.Add(SmbiosProperty.SystemSlots.SlotPhysicalWidth, GetDataBusWidth(DataWidth));
                properties.Add(SmbiosProperty.SystemSlots.SlotPitch, SlotPitch);
            }
            #endregion
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.v20)
            {
                return;
            }

            properties.Add(SmbiosProperty.BiosLanguage.InstallableLanguages, GetValues(Count));
            properties.Add(SmbiosProperty.BiosLanguage.IsCurrentAbbreviated, IsCurrentAbbreviated);
            properties.Add(SmbiosProperty.BiosLanguage.Current, Current);
        }
コード例 #15
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(SmbiosPropertiesTable properties)
        {
            properties.Add(SmbiosProperty.GroupAssociations.GroupName, GroupName);

            int n = (StructureInfo.Length - 5) / 3;

            byte[] containedElementsArray = StructureInfo.RawData.Extract(0x05, n * 3).ToArray();
            IEnumerable <GroupAssociationElement> containedElements = GetContainedElements(containedElementsArray, n);

            properties.Add(SmbiosProperty.GroupAssociations.ContainedElements, new 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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.BootIntegrityServicesEntryPoint.Checksum, Checksum);
            properties.Add(SmbiosProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress16, BisEntryPointAddress16);
            properties.Add(SmbiosProperty.BootIntegrityServicesEntryPoint.BisEntryPointAddress32, BisEntryPointAddress32);
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.v21)
            {
                return;
            }

            properties.Add(SmbiosProperty.BuiltInPointingDevice.NumberOfButtons, NumberOfButtons);
            properties.Add(SmbiosProperty.BuiltInPointingDevice.Type, GetDeviceType(DeviceType));
            properties.Add(SmbiosProperty.BuiltInPointingDevice.Interface, GetDeviceInterface(Interface));
        }
コード例 #18
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.OutOfBandRemote.Manufacturer, ManufacturerName);
            properties.Add(SmbiosProperty.OutOfBandRemote.Connections.OutBoundConnection, OutBoundConnection);
            properties.Add(SmbiosProperty.OutOfBandRemote.Connections.InBoundConnection, InBoundConnection);
        }
コード例 #19
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.OnBoardDevicesExtended.ReferenceDesignation, ReferenceDesignation);
            properties.Add(SmbiosProperty.OnBoardDevicesExtended.Element.DeviceStatus, DeviceStatus);
            properties.Add(SmbiosProperty.OnBoardDevicesExtended.Element.DeviceType, GetDeviceType(DeviceType));
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            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));
        }
コード例 #21
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.ManagementDeviceComponent.Description, Description);
            properties.Add(SmbiosProperty.ManagementDeviceComponent.ComponentHandle, ComponentHandle);
            properties.Add(SmbiosProperty.ManagementDeviceComponent.ThresholdHandle, ThresholdHandle);
            properties.Add(SmbiosProperty.ManagementDeviceComponent.ManagementDeviceHandle, ManagementDeviceHandle);
        }
コード例 #22
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            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));
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            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);
        }
コード例 #24
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(SmbiosPropertiesTable properties)
        {
            #region version 3.5

            if (StructureInfo.StructureVersion >= SmbiosStructureVersion.v35)
            {
                properties.Add(SmbiosProperty.StringProperty.PropertyId, GetPropertyId(PropertyId));
                properties.Add(SmbiosProperty.StringProperty.PropertyValue, PropertyValue);
                properties.Add(SmbiosProperty.StringProperty.ParentHandle, ParentHandle);
            }

            #endregion
        }
コード例 #25
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            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);
        }
コード例 #26
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(SmbiosPropertiesTable properties)
        {
            properties.Add(SmbiosProperty.ManagementControllerHostInterface.InterfaceType, GetInterfaceType(InterfaceType));

            if (StructureInfo.Length >= 0x07)
            {
                properties.Add(SmbiosProperty.ManagementControllerHostInterface.InterfaceTypeSpecificData, InterfaceTypeSpecificData);
            }

            if (StructureInfo.Length >= 0x08 + InterfaceTypeSpecificDataLenght)
            {
                properties.Add(SmbiosProperty.ManagementControllerHostInterface.Protocols, new ManagementControllerHostInterfaceProtocolRecordsCollection(GetProtocolRecords()));
            }
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            properties.Add(SmbiosProperty.BaseBoard.Manufacturer, Manufacturer);
            properties.Add(SmbiosProperty.BaseBoard.Product, Product);
            properties.Add(SmbiosProperty.BaseBoard.Version, Version);
            properties.Add(SmbiosProperty.BaseBoard.SerialNumber, SerialNumber);

            if (StructureInfo.Length >= 0x09)
            {
                properties.Add(SmbiosProperty.BaseBoard.AssetTag, AssetTag);
            }

            if (StructureInfo.Length >= 0x0a)
            {
                properties.Add(SmbiosProperty.BaseBoard.Features.IsHotSwappable, IsHotSwappable);
                properties.Add(SmbiosProperty.BaseBoard.Features.IsReplaceable, IsReplaceable);
                properties.Add(SmbiosProperty.BaseBoard.Features.IsRemovable, IsRemovable);
                properties.Add(SmbiosProperty.BaseBoard.Features.RequiredDaughterBoard, RequiredDaughterBoard);
                properties.Add(SmbiosProperty.BaseBoard.Features.IsHostingBoard, IsHostingBoard);
            }

            if (StructureInfo.Length >= 0x0b)
            {
                properties.Add(SmbiosProperty.BaseBoard.LocationInChassis, LocationInChassis);
            }

            if (StructureInfo.Length >= 0x0c)
            {
                properties.Add(SmbiosProperty.BaseBoard.ChassisHandle, ChassisHandle);
            }

            if (StructureInfo.Length >= 0x0d)
            {
                properties.Add(SmbiosProperty.BaseBoard.BoardType, GetBoardType(BoardType));
            }

            if (StructureInfo.Length >= 0x0e)
            {
                byte n = NumberOfContainedObjectHandles;
                properties.Add(SmbiosProperty.BaseBoard.NumberOfContainedObjectHandles, n);

                if (n != 0x00 && StructureInfo.Length >= 0x0f)
                {
                    byte[] containedElementsArray = StructureInfo.RawData.Extract((byte)0x0f, n).ToArray();
                    IEnumerable <SmbiosStructure> containedElements = GetContainedElements(containedElementsArray);
                    properties.Add(SmbiosProperty.BaseBoard.ContainedElements, new BaseBoardContainedElementCollection(containedElements));
                }
            }
        }
コード例 #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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion <= SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.MemoryModule.SocketDesignation, SocketDesignation);
            properties.Add(SmbiosProperty.MemoryModule.BankConnections, GetBankConnections(BankConnections));
            properties.Add(SmbiosProperty.MemoryModule.CurrentSpeed, GetMemorySpeeds(CurrentSpeed));
            properties.Add(SmbiosProperty.MemoryModule.CurrentMemoryType, GetCurrentMemoryTypes(CurrentMemoryType));
            properties.Add(SmbiosProperty.MemoryModule.InstalledSize, GetSize(InstalledSize));
            properties.Add(SmbiosProperty.MemoryModule.EnabledSize, GetSize(EnabledSize));
            properties.Add(SmbiosProperty.MemoryModule.ErrorStatus, GetErrorStatus(ErrorStatus));
        }
コード例 #29
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.v21)
            {
                return;
            }

            properties.Add(SmbiosProperty.BitMemoryError32.ErrorType, GetErrorType(ErrorType));
            properties.Add(SmbiosProperty.BitMemoryError32.ErrorGranularity, GetErrorGranularity(ErrorGranularity));
            properties.Add(SmbiosProperty.BitMemoryError32.ErrorOperation, GetErrorOperation(ErrorOperation));
            properties.Add(SmbiosProperty.BitMemoryError32.VendorSyndrome, CrcData);
            properties.Add(SmbiosProperty.BitMemoryError32.MemoryArrayErrorAddress, BusErrorAddress);
            properties.Add(SmbiosProperty.BitMemoryError32.DeviceErrorAddress, DeviceErrorAddress);
            properties.Add(SmbiosProperty.BitMemoryError32.ErrorResolution, ErrorResolution);
        }
コード例 #30
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(SmbiosPropertiesTable properties)
        {
            if (StructureInfo.StructureVersion < SmbiosStructureVersion.Latest)
            {
                return;
            }

            properties.Add(SmbiosProperty.SystemReset.ResetCount, ResetCount);
            properties.Add(SmbiosProperty.SystemReset.ResetLimit, ResetLimit);
            properties.Add(SmbiosProperty.SystemReset.TimerInterval, TimerInterval);
            properties.Add(SmbiosProperty.SystemReset.Timeout, TimeOut);
            properties.Add(SmbiosProperty.SystemReset.Capabilities.Status, Status);
            properties.Add(SmbiosProperty.SystemReset.Capabilities.BootOption, GetBootOption(BootOption));
            properties.Add(SmbiosProperty.SystemReset.Capabilities.BootOptionOnLimit, GetBootOption(BootOptionOnLimit));
            properties.Add(SmbiosProperty.SystemReset.Capabilities.WatchdogTimer, WatchdogTimer);
        }