LibreHardwareMonitorLib
Stores all hardware groups and decides which devices should be enabled and updated.
Creates a new instance with basic initial .
Creates a new instance with additional .
Computer settings that will be transferred to each .
Contains computer information table read in accordance with System Management BIOS (SMBIOS) Reference Specification.
Triggers the method for the given observer.
Observer who call to devices.
Triggers the method with the given visitor for each device in each group.
Observer who call to devices.
If hasn't been opened before, opens , , and triggers the private method depending on which categories are
enabled.
If opened before, removes all and triggers , and .
If opened before, removes all and recreates it.
specific additional settings passed to its .
Support for the NZXT GRID+ V3 devices.
Support for the KrakenZ devices from NZXT
Initializes a new instance of the class.
The group.
The thread.
The affinity.
Gets the specified .
The group.
The thread.
.
Gets the CPUID.
Gets the CPU index.
Sets the default fan speed.
Gets the OverdriveN temperature.
The type.
The sensor.
The minimum temperature.
The scale.
If set to true, resets the sensor value to null.
Gets a PMLog sensor value.
The data.
Type of the sensor.
The sensor.
The factor.
If set to true, resets the sensor value to null.
Gets the Overdrive6 power.
The type.
The sensor.
Initializes a new instance of the class.
Component name.
Identifier that will be assigned to the device. Based on
Additional settings passed by the .
Gets the device identifier.
This structure describes a group-specific affinity.
Initializes a new instance of the struct.
The group.
The mask.
Gets a single group affinity.
The group.
The index.
.
Gets the group.
Gets the mask.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
Implements the == operator.
The a1.
The a2.
The result of the operator.
Implements the != operator.
The a1.
The a2.
The result of the operator.
Object representing a component of the computer.
Individual information can be read from the .
Creates a new instance based on the data provided.
Component name.
Identifier that will be assigned to the device. Based on
Additional settings passed by the .
Event triggered when is closing.
Collection of identifiers representing the purpose of the hardware.
Handler that will trigger the actions assigned to it when the event occurs.
Component returned to the assigned action(s).
Basic abstract with methods for the class which can store all hardware and decides which devices are to be checked and updated.
Triggered when a new is registered.
Triggered when a is removed.
Gets a list of all known .
Can be updated by .
List of all enabled devices.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about:
-
-
-
-
-
devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about or devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Gets or sets a value indicating whether collecting information about devices should be enabled and updated.
if a given category of devices is already enabled.
Generates full LibreHardwareMonitor report for devices that have been enabled.
A formatted text string with library, OS and hardware information.
Represents a unique / identifier in text format with a / separator.
Creates a new identifier instance based on the base and additional elements.
Base identifier being the beginning of the new one.
Additional parts by which the base will be extended.
Abstract parent with logic for the abstract class that stores data.
Accepts the observer for this instance.
Computer observer making the calls.
Call the method for all child instances (called only from visitors).
Computer observer making the calls.
A group of devices from one category in one list.
Gets a list that stores information about in a given group.
Report containing most of the known information about all in this .
A formatted text string with hardware information.
Stop updating this group in the future.
Handler that will trigger the actions assigned to it when the event occurs.
Component returned to the assigned action(s).
Abstract object that stores information about a device. All sensors are available as an array of .
Can contain .
Type specified in .
Gets a unique hardware ID that represents its location.
Gets or sets device name.
Gets the device that is the parent of the current hardware. For example, the motherboard is the parent of SuperIO.
Gets an array of all sensors such as , , etc.
Gets child devices, e.g. of the .
Report containing most of the known information about the current device.
A formatted text string with hardware information.
Refreshes the information stored in array.
An that will be triggered when a new sensor appears.
An that will be triggered when one of the sensors is removed.
Gets rarely changed hardware properties that can't be represented as sensors.
Abstract object that represents additional parameters included in .
Gets a parameter default value defined by library.
Gets a parameter description defined by library.
Gets a unique parameter ID that represents its location.
Gets or sets information whether the given is the default for .
Gets a parameter name defined by library.
Gets the sensor that is the data container for the given parameter.
Gets or sets the current value.
Category of what type the selected sensor is.
Stores the readed value and the time in which it was recorded.
of the sensor.
The time code during which the was recorded.
Gets the value of the sensor
Gets the time code during which the was recorded.
Stores information about the readed values and the time in which they were collected.
Gets the unique identifier of this sensor for a given .
Gets a maximum value recorded for the given sensor.
Gets a minimum value recorded for the given sensor.
Gets or sets a sensor name.
By default determined by the library.
Gets the last recorded value for the given sensor.
Gets a list of recorded values for the given sensor.
Resets a value stored in .
Resets a value stored in .
Clears the values stored in .
Abstract object that stores information about the limits of .
Upper limit of value.
Lower limit of value.
Abstract object that stores information about the critical limits of .
Critical upper limit of value.
Critical lower limit of value.
Abstract object that stores settings passed to , and .
Returns information whether the given collection of settings contains a value assigned to the given key.
Key to which the setting value is assigned.
Assigns a setting option to a given key.
Key to which the setting value is assigned.
Text setting value.
Gets a setting option assigned to the given key.
Key to which the setting value is assigned.
Default value.
Removes a setting with the specified key from the settings collection.
Key to which the setting value is assigned.
Base interface for creating observers who call to devices.
Refreshes the values of all in all on selected .
Instance of the computer to be revisited.
Refreshes the values of all on selected .
Instance of the hardware to be revisited.
Refreshes the values on selected .
Instance of the sensor to be revisited.
Refreshes the values on selected .
Instance of the parameter to be revisited.
Chipset temperature [℃]
CPU temperature [℃]
motherboard temperature [℃]
"T_Sensor" temperature sensor reading [℃]
VRM temperature [℃]
CPU Core voltage [mV]
CPU_Opt fan [RPM]
VRM heat sink fan [RPM]
Chipset fan [RPM]
Water Pump [RPM]
Water flow sensor reading [RPM]
CPU current [A]
"Water_In" temperature sensor reading [℃]
"Water_Out" temperature sensor reading [℃]
Water block temperature sensor reading [℃]
An unsafe but universal implementation for the ACPI Embedded Controller IO interface for Windows
It is unsafe because of possible race condition between this application and the PC firmware when
writing to the EC registers. For a safe approach ACPI/WMI methods have to be used, but those are
different for each motherboard model.
This is a controller present on some Gigabyte motherboards for both Intel and AMD, that is in custom firmware
loaded onto the 2nd ITE EC.
It can be accessed by using memory mapped IO, mapping its internal RAM onto main RAM via the ISA Bridge.
This class can disable it so that the regular IT87XX code can drive the fans.
Base address in PCI RAM that maps to the EC's RAM
Enable/Disable Fan Control
true on success
Restore settings back to initial values
Selects another bank. Memory from 0x10-0xAF swaps to data from new bank.
Beware to select the default bank 0 after changing.
Bank selection is reset after power cycle.
New bank index. Can be a value of 0-3.
Represents the motherboard of a computer with its and as .
Creates motherboard instance by retrieving information from and creates a new based on data from
and .
table containing motherboard data.
Additional settings passed by .
Gets the .
Gets the .
Gets the name obtained from .
Always
Gets the information.
Motherboard itself cannot be updated. Update instead.
Closes using .
Opens the mutexes.
Closes the mutexes.
Composite class containing information about the selected .
Creates a new instance and assigns values.
Name of the selected component.
Description of the selected component.
Default value of the selected component.
Gets a name of the parent .
Gets a description of the parent .
Gets a default value of the parent .
Observer making calls to selected component 's.
Creates a new observer instance.
Instance of the that triggers events during visiting the .
Goes through all the components of the specified with its .
Computer class instance that is derived from the interface.
Goes through all the components of the specified with its .
Hardware class instance that is derived from the interface.
Goes through all the components of the specified using .
Sensor class instance that is derived from the interface.
Goes through all the components of the specified .
Parameter class instance that is derived from the interface.
System enclosure security status based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.4.3.
System enclosure state based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.4.2.
System enclosure type based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.4.1.
Processor family based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.5.2.
Processor characteristics based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.5.9.
Processor type based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.5.1.
Processor socket based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.5.5.
System wake-up type based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.2.2.
Cache associativity based on DMTF SMBIOS Reference Specification v.3.3.0, Chapter 7.8.5.
Processor cache level.
Memory type.
Initializes a new instance of the class.
The data.
The strings.
Gets the byte.
The offset.
.
Gets the word.
The offset.
.
Gets the dword.
The offset.
.
Gets the qword.
The offset.
.
Gets the string.
The offset.
.
Motherboard BIOS information obtained from the SMBIOS table.
Gets the BIOS release date.
Gets the size of the physical device containing the BIOS.
Gets the string number of the BIOS Vendor’s Name.
Gets the string number of the BIOS Version. This value is a free-form string that may contain Core and OEM version information.
Gets the size.
.
Gets the date.
The bios date.
.
System information obtained from the SMBIOS table.
Gets the family associated with system.
This text string identifies the family to which a particular computer belongs. A family refers to a set of computers that are similar but not identical from a hardware or software point of
view. Typically, a family is composed of different computer models, which have different configurations and pricing points. Computers in the same family often have similar branding and cosmetic
features.
Gets the manufacturer name associated with system.
Gets the product name associated with system.
Gets the serial number string associated with system.
Gets the version string associated with system.
Gets
System enclosure obtained from the SMBIOS table.
Gets the asset tag associated with the enclosure or chassis.
Gets
Gets or sets the system enclosure lock.
System enclosure lock is present if . Otherwise, either a lock is not present or it is unknown if the enclosure has a lock.
Gets the string describing the chassis or enclosure manufacturer name.
Gets the number of power cords associated with the enclosure or chassis.
Gets the state of the enclosure’s power supply (or supplies) when last booted.
Gets the height of the enclosure, in 'U's. A U is a standard unit of measure for the height of a rack or rack-mountable component and is equal to 1.75 inches or 4.445 cm. A value of 0
indicates that the enclosure height is unspecified.
Gets the physical security status of the enclosure when last booted.
Gets the string describing the chassis or enclosure serial number.
Gets the string describing the chassis or enclosure SKU number.
Gets the thermal state of the enclosure when last booted.
Gets
Gets the number of null-terminated string representing the chassis or enclosure version.
Motherboard information obtained from the SMBIOS table.
Gets the value that represents the manufacturer's name.
Gets the value that represents the motherboard's name.
Gets the value that represents the motherboard's serial number.
Gets the value that represents the motherboard's revision number.
Processor information obtained from the SMBIOS table.
Gets the characteristics of the processor.
Gets the value that represents the number of cores per processor socket.
Gets the value that represents the number of enabled cores per processor socket.
Gets the value that represents the current processor speed (in MHz).
Gets the external Clock Frequency, in MHz. If the value is unknown, the field is set to 0.
Gets
Gets the handle.
The handle.
Gets the identifier.
Gets the L1 cache handle.
Gets the L2 cache handle.
Gets the L3 cache handle.
Gets the string number of Processor Manufacturer.
Gets the value that represents the maximum processor speed (in MHz) supported by the system for this processor socket.
Gets
Gets the value that represents the string number for the serial number of this processor.
This value is set by the manufacturer and normally not changeable.
Gets
Gets the string number for Reference Designation.
Gets the value that represents the number of threads per processor socket.
Gets the value that represents the string number describing the Processor.
Cache information obtained from the SMBIOS table.
Gets
Gets
Gets the handle.
Gets the value that represents the installed cache size.
Gets the cache designation.
.
Memory information obtained from the SMBIOS table.
Gets the string number of the string that identifies the physically labeled bank where the memory device is located.
Gets the string number of the string that identifies the physically-labeled socket or board position where the memory device is located.
Gets the string number for the manufacturer of this memory device.
Gets the string number for the part number of this memory device.
Gets the string number for the serial number of this memory device.
Gets the size of the memory device. If the value is 0, no memory device is installed in the socket.
Gets the value that identifies the maximum capable speed of the device, in mega transfers per second (MT/s).
Gets the configured speed of the device, in mega transfers per second (MT/s).
Gets the configured voltage of this memory device, in millivolts (mV).
Gets the type of this memory device.
The type.
Reads and processes information encoded in an SMBIOS table.
Initializes a new instance of the class.
Gets
Gets
Gets
Gets
Gets
Gets
Gets
Report containing most of the information that could be read from the SMBIOS table.
A formatted text string with computer information and the entire SMBIOS table.
Helper to calculate the disk performance with base timestamps
https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-perfrawdata
Gets the SMART data.
Gets the SMART attributes.
Gets the SMART data.
Initializes a new instance of the class.
The SMART id of the attribute.
The name of the attribute.
Initializes a new instance of the class.
The SMART id of the attribute.
The name of the attribute.
A delegate for converting the raw byte
array into a value (or null to use the attribute value).
Initializes a new instance of the class.
The SMART id of the attribute.
The name of the attribute.
A delegate for converting the raw byte
array into a value (or null to use the attribute value).
Type of the sensor or null if no sensor is to
be created.
If there exists more than one attribute with
the same sensor channel and type, then a sensor is created only for the
first attribute.
The name to be used for the sensor, or null if
no sensor is created.
True to hide the sensor initially.
Description for the parameters of the sensor
(or null).
Gets the SMART identifier.
Localization class for SMART attribute names.
Adds the hardware.
The settings.
The storage space disk to physical disk map.
Maps each StorageSpace to the PhysicalDisks it is composed of.
Maps a disk to a physical disk.
The disk.
The scope.
Reads Smart health status of the drive
True, if drive is healthy; False, if unhealthy; Null, if it cannot be read
Initializes static members of the class.
Gets the processor group count.
Sets the processor group affinity for the current thread.
The processor group affinity.
The previous processor group affinity.
All OK, but need to wait.
All OK, but need restart.
All OK but need mode change.
All OK, but with warning.
ADL function completed successfully.
Generic Error. Most likely one or more of the Escape calls to the driver
failed!
ADL not initialized.
One of the parameter passed is invalid.
One of the parameter size is invalid.
Invalid ADL index passed.
Invalid controller index passed.
Invalid display index passed.
Function not supported by the driver.
Null Pointer error.
Call can't be made due to disabled adapter.
Invalid Callback.
Display Resource conflict.
Failed to update some of the values. Can be returned by set request that
include multiple values if not all values were successfully committed.
There's no Linux XDisplay in Linux Console environment.
If set to 1, then the available spare space has fallen below the threshold.
If set to 1, then a temperature is above an over temperature threshold or below an under temperature threshold.
If set to 1, then the device reliability has been degraded due to significant media related errors or any internal error that degrades device reliability.
If set to 1, then the media has been placed in read only mode
If set to 1, then the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution.
Create a instance from a struct with zero initialized memory arrays
no need to init every inner array with the correct sizes
type of struct that is needed
SMART data requested.
Identify data is requested.
Read SMART data.
Read SMART thresholds.
obsolete
Autosave SMART data.
Save SMART attributes.
Set SMART to offline immediately.
Read SMART log.
Write SMART log.
Write SMART thresholds.
obsolete
Enable SMART.
Disable SMART.
Get SMART status.
Set SMART to offline automatically.
bit 0:15 Maximum Power (MP) in centiwatts
bit 16:23
bit 24 Max Power Scale (MPS), bit 25 Non-Operational State (NOPS)
bit 32:63 Entry Latency (ENLAT) in microseconds
bit 64:95 Exit Latency (EXLAT) in microseconds
bit 96:100 Relative Read Throughput (RRT)
bit 104:108 Relative Read Latency (RRL)
bit 112:116 Relative Write Throughput (RWT)
bit 120:124 Relative Write Latency (RWL)
bit 128:143 Idle Power (IDLP)
bit 150:151 Idle Power Scale (IPS)
bit 152:159
bit 160:175 Active Power (ACTP)
bit 176:178 Active Power Workload (APW), bit 182:183 Active Power Scale (APS)
bit 184:255.
byte 0:1 M - PCI Vendor ID (VID)
byte 2:3 M - PCI Subsystem Vendor ID (SSVID)
byte 4: 23 M - Serial Number (SN)
byte 24:63 M - Model Number (MN)
byte 64:71 M - Firmware Revision (FR)
byte 72 M - Recommended Arbitration Burst (RAB)
byte 73:75 M - IEEE OUI Identifier (IEEE). Controller Vendor code.
byte 76 O - Controller Multi-Path I/O and Namespace Sharing Capabilities (CMIC)
byte 77 M - Maximum Data Transfer Size (MDTS)
byte 78:79 M - Controller ID (CNTLID)
byte 80:83 M - Version (VER)
byte 84:87 M - RTD3 Resume Latency (RTD3R)
byte 88:91 M - RTD3 Entry Latency (RTD3E)
byte 92:95 M - Optional Asynchronous Events Supported (OAES)
byte 96:239.
byte 240:255. Refer to the NVMe Management Interface Specification for definition.
byte 256:257 M - Optional Admin Command Support (OACS)
byte 258 M - Abort Command Limit (ACL)
byte 259 M - Asynchronous Event Request Limit (AERL)
byte 260 M - Firmware Updates (FRMW)
byte 261 M - Log Page Attributes (LPA)
byte 262 M - Error Log Page Entries (ELPE)
byte 263 M - Number of Power States Support (NPSS)
byte 264 M - Admin Vendor Specific Command Configuration (AVSCC)
byte 265 O - Autonomous Power State Transition Attributes (APSTA)
byte 266:267 M - Warning Composite Temperature Threshold (WCTEMP)
byte 268:269 M - Critical Composite Temperature Threshold (CCTEMP)
byte 270:271 O - Maximum Time for Firmware Activation (MTFA)
byte 272:275 O - Host Memory Buffer Preferred Size (HMPRE)
byte 276:279 O - Host Memory Buffer Minimum Size (HMMIN)
byte 280:295 O - Total NVM Capacity (TNVMCAP)
byte 296:311 O - Unallocated NVM Capacity (UNVMCAP)
byte 312:315 O - Replay Protected Memory Block Support (RPMBS)
byte 316:511
byte 512 M - Submission Queue Entry Size (SQES)
byte 513 M - Completion Queue Entry Size (CQES)
byte 514:515
byte 516:519 M - Number of Namespaces (NN)
byte 520:521 M - Optional NVM Command Support (ONCS)
byte 522:523 M - Fused Operation Support (FUSES)
byte 524 M - Format NVM Attributes (FNA)
byte 525 M - Volatile Write Cache (VWC)
byte 526:527 M - Atomic Write Unit Normal (AWUN)
byte 528:529 M - Atomic Write Unit Power Fail (AWUPF)
byte 530 M - NVM Vendor Specific Command Configuration (NVSCC)
byte 531
byte 532:533 O - Atomic Compare and Write Unit (ACWU)
byte 534:535
byte 536:539 O - SGL Support (SGLS)
byte 540:703
byte 704:2047
byte 2048:3071 Power State Descriptors
byte 3072:4095 Vendor Specific
This field indicates critical warnings for the state of the controller.
Each bit corresponds to a critical warning type; multiple bits may be set.
Composite Temperature: Contains the temperature of the overall device (controller and NVM included) in units of Kelvin.
Available Spare: Contains a normalized percentage (0 to 100%) of the remaining spare capacity available
Available Spare Threshold: When the Available Spare falls below the threshold indicated in this field,
an asynchronous event completion may occur. The value is indicated as a normalized percentage (0 to 100%).
Percentage Used: Contains a vendor specific estimate of the percentage of NVM subsystem life used based on
the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of
the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100.
Data Units Read: Contains the number of 512 byte data units the host has read from the controller;
this value does not include metadata. This value is reported in thousands
(i.e., a value of 1 corresponds to 1000 units of 512 bytes read) and is rounded up.
Data Units Written: Contains the number of 512 byte data units the host has written to the controller;
this value does not include metadata. This value is reported in thousands
(i.e., a value of 1 corresponds to 1000 units of 512 bytes written) and is rounded up.
Host Read Commands: Contains the number of read commands completed by the controller.
For the NVM command set, this is the number of Compare and Read commands.
Host Write Commands: Contains the number of write commands completed by the controller.
For the NVM command set, this is the number of Write commands.
Controller Busy Time: Contains the amount of time the controller is busy with I/O commands.
Power Cycles: Contains the number of power cycles.
Power On Hours: Contains the number of power-on hours.
This does not include time that the controller was powered and in a low power state condition.
Unsafe Shutdowns: Contains the number of unsafe shutdowns.
This count is incremented when a shutdown notification is not received prior to loss of power.
Media Errors: Contains the number of occurrences where the controller detected an unrecoverable data integrity error.
Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.
Number of Error Information Log Entries: Contains the number of Error Information log entries over the life of the controller
Warning Composite Temperature Time: Contains the amount of time in minutes that the controller is operational and the Composite Temperature is greater than or equal to the Warning Composite
Temperature Threshold.
Critical Composite Temperature Time: Contains the amount of time in minutes that the controller is operational and the Composite Temperature is greater than the Critical Composite Temperature
Threshold.
Contains the current temperature reported by temperature sensor 1-8.
Gets the resulting IO control code.
Initializes a new instance of the struct.
Type of the device.
The function.
The access.
Initializes a new instance of the struct.
Type of the device.
The function.
The method.
The access.
The operation was successful
NvidiaML was not first initialized with nvmlInit()
A supplied argument is invalid
The requested operation is not available on target device
The current user does not have permission for operation
A query to find an object was unsuccessful
An input argument is not large enough
A device's external power cables are not properly attached
NVIDIA driver is not loaded
User provided timeout passed
NVIDIA Kernel detected an interrupt issue with a GPU
NvidiaML Shared Library couldn't be found or loaded
Local version of NvidiaML doesn't implement this function
infoROM is corrupted
The GPU has fallen off the bus or has otherwise become inaccessible
The GPU requires a reset before it can be used again
The GPU control device has been blocked by the operating system/cgroups
RM detects a driver/library version mismatch
An operation cannot be performed because the GPU is currently in use
An public driver error occurred
Driver with access at kernel level.
Contains Win32 definitions for Windows NT.
Describes a local identifier for an adapter.
Represents a 64-bit signed integer value.
Contains basic information about the operating system.
Statically checks if the current system and .
Gets information about whether the current system is 64 bit.
Gets information about whether the current system is Unix based.
Returns true if the current system is Windows 8 or a more recent Windows version