Commit Graph
468 Commits
Author SHA1 Message Date
PhyxionNLandCopilot ee60348eac Use CsWin32 (#1912)
* Use CsWin32

* Update LibreHardwareMonitorLib/Hardware/Cpu/CpuLoad.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update LibreHardwareMonitorLib/Hardware/Battery/BatteryGroup.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update pull requests.yml

* Update pull requests.yml

* Update master.yml

* A couple more to CsWin32

* Restore PawnIO defaults

Fixes #1910

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-29 18:48:00 +02:00
Teemu KorhonenandPhyxionNL c56cf3f042 Use PawnIO driver directly in LibreHardwareMonitorLib (#1908)
* Use PawnIO driver directly.

- Implemented PawnIO library in C#
- Builds in AnyCPU, x64 and x86
- Fixes #1895

* Implement review changes for PawnIO.

- Use existing Kernel32.CreateFile import.
- Move new DeviceIOControl to Kernel32.
- Replace Lazy Version loading with static property.
- Remove bin resource cache.
- Add constant for function name length.

* More review changes for PawnIO.

- Replace redundant internal checks with IsLoaded.
- Convert Win32 error code to HRESULT before returning it in
  ExecuteHR()

* Drop KernelDriver

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-29 16:41:57 +02:00
PhyxionNL 79a043e5bf Fixes #1889 2025-09-27 12:54:24 +02:00
辉夜andPhyxionNL 3023089017 Changed NvApi lifecycle (#1885)
* Changed NvApi lifecycle

* Changed from public to internal

* Revert unnecessary changes.
Reinitialize() -> Initialize().

* Refactor try-catch blocks for NVML device methods

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-26 10:34:20 +02:00
Jonathan Smith 16fcb62135 fix: Add missing sensors for Asus ROG X670E-HERO / GENE (#1900) 2025-09-25 19:15:50 +02:00
Betalos (Oussama Thoura) 12fcfa6752 Record RTX 50XX gpu core temp with decimal precision (#1899) 2025-09-25 19:05:35 +02:00
PhyxionNL ca5f07d776 Merge branch 'master' of https://github.com/LibreHardwareMonitor/LibreHardwareMonitor 2025-09-25 18:54:12 +02:00
PhyxionNL 9ad730d811 Clean up CorsairPsu 2025-09-25 18:54:08 +02:00
JoeBroesele a18b1221ad Added support for Lenovo V50t Gen 2. (#1897) 2025-09-25 11:54:33 +02:00
PhyxionNL 4534276fb6 Add MS-7C35 motherboards
Closes #1573
2025-09-23 11:57:13 +02:00
PhyxionNL 8b9c33100d Update SuperIOHardware.cs 2025-09-23 11:43:44 +02:00
PhyxionNL 8042a505b0 Merge branch 'pr/1503' 2025-09-23 11:42:48 +02:00
PhyxionNL 4d77721c42 Merge 2025-09-23 11:40:21 +02:00
PhyxionNL 0f86b50ff4 Merge branch 'pr/1578' 2025-09-23 11:40:15 +02:00
PhyxionNL aa4428ba2a Rename 'CPU VDDIO / MC' to 'CPU VDDIO Memory' 2025-09-23 11:37:55 +02:00
PhyxionNL c234bb5a88 Update SuperIOHardware.cs 2025-09-23 10:44:27 +02:00
Betalos (Oussama Thoura) 52f22e0f7b Add support for Asrock X870E Taichi (lite) (#1888) 2025-09-23 10:40:09 +02:00
Blacktempel bb65e069fd Fix memory only being available for Intel (#1887)
* Current implementation of PawnIo.LoadModuleFromResource swallows exceptions instead of throwing them like it has been previously.
It also returns a not-null PawnIo object.
RAMSPDToolkitDriver has been catching exception, returning false for LoadModule and checking if returned object is null.
Therefore the return for a failed loaded module was true where it should have been false.

Returning null from PawnIo.LoadModuleFromResource in catch block fixes this issue.

* Add IsValid property for PawnIo and check in RAMSPDToolkitDriver.
Remove null return.

* Update RAMSPDToolkit to newest version.
Fixes bug in .NET Framework and changed PawnIO interface due to adjusted Piix4 detection.

Add new Data sensor.

* Rename property.
2025-09-23 10:38:48 +02:00
辉夜 3d8642c03f Fix RTX 40 Series Hot Spot and Memory Junction sensor not reading (#1890)
* Resolved an issue where RTX 40 Series sensors.

* change if to else if
2025-09-22 23:00:21 +02:00
Rémi Mercier afa34e080e close lmsensors+lpcIO after hardware.close() (#1886)
internally hardware.close() may use lpcIO like SuperIOHardware which does SetControl(index, null).
2025-09-22 22:56:07 +02:00
Vladimir 4477ae8826 Merge remote-tracking branch 'upstream/master' 2025-09-22 02:14:29 +03:00
Betalos (Oussama Thoura)andPhyxionNL 2f595d76c2 FIX RTX 50XX Memory junction temp reading (#1878)
* Update NvidiaGpu.cs

* Enhance 50 series detection logic

* Remove unused namespace import in NvidiaGpu.cs

Removed unused 'System.Xml.Linq' namespace import.

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-21 13:54:21 +02:00
namazsoandPhyxionNL eb5e1a20be Swap WinRing0 to PawnIO (#1857)
* Replace WinRing0 with PawnIO

* Update RAMSPDToolkit

* Add install check + cleanup

* Move folder + formatting

* Add back missing TryLoadDll

* Update PawnIo.cs

* Add third party notices file

* Remove the how to apply section

* Drop silent

* Don't crash if PawnIO isn't installed

* Formatting

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-16 11:58:31 +02:00
Jerry Liu 1704f8c7b7 Support ASUS ROG Crosshair X870E Apex (#1834)
* Support ASUS ROG Crosshair X870E Apex

* Remove unnecessary HashSet

* Adjust Temperature Sensor Mapping

Both Temp #1 and Temp #22 move with CPU load, but it looks like Temp #22 is actually CPU which is the same as the Hero. #1 doesn't align mostly with VRM but isn't an exact match.

* Refactor temperature sensor mapping

Replaces the temperature sensor dictionary mapping with explicit additions for known sensors and a loop to add unmapped sensors.
2025-09-11 15:35:37 +02:00
WinFinn 92af930021 Add sensors to aquacomputer d5 next (#1825)
* Add sensors to D5Next

* Cleanup debug code
2025-09-08 13:16:37 +02:00
Blacktempel 3f8294898d RAMSPDToolkit Update + timings added (#1835)
* Workaround for page changing on DDR5 systems with SPD Write Protection active has been implemented in new version of RAMSPDToolkit.

Code for LHM has been adjusted accordingly.

Added more sensors (timings).

* Move abbreviation of timings to start of string.

* Simplify names for timings.

* Update version.

* Remove extra padding.
2025-09-08 13:14:32 +02:00
Nick Babcock 16ad77afc6 Disambiguate TotalMemory and VirtualMemory identifiers (#1817)
Both use the "ram" hardware identifier which makes it difficult for
downstream applications to disambiguate them.
2025-09-04 20:16:11 +02:00
MoshiMoshi0 cc9b897368 Fix possible collection was modified exception (#1836) 2025-09-04 20:14:32 +02:00
MoshiMoshi0andPhyxionNL 418e9ec85f Fix missing DIMM temperature sensors (#1821)
* Fix missing DIMM temperature sensors

* Update MemoryGroup.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-08-29 10:39:41 +02:00
sebastian-dev 78829b97e1 Fix issues with missing samsung nvme data. (#1818)
Reorder read out order in the same way as CrystalDiskInfo
2025-08-29 10:34:45 +02:00
Vladimir 28f57d51d7 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs
2025-08-10 02:00:59 +03:00
Rémi Mercier 8036ea21cb Restore fan control for IT8696E + make the 0 values array specific to the X870 Aorus elite WIFI7 (#1812)
* Make the 0 values array specific to the X870 Aorus elite WIFI7

* Update IT87XX.cs

* Update IT87XX.cs

* Update IT87XX.cs
2025-08-06 16:54:53 +02:00
Mihai Vasiliu c40db485f9 Add support for MSI PRO Z890 WIFI (Nuvoton NCT6687D) (#1809) 2025-08-05 12:42:27 +02:00
Rémi Mercier 06b714ae1b MemoryGroup: Remove retry + proper identifier (#1797)
* Remove retry + proper identifier

* Update LibreHardwareMonitorLib.csproj

* Revert "Update LibreHardwareMonitorLib.csproj"

This reverts commit 185aa2dbd3d338da79aff8bfa9419f016d107e77.

* Add safer retry logic for MemoryGroup

* Move kernel driver assignation in instance ctor instead of static (one time) ctor, since Ring0 can get closed and reopened multiple times in the lifetime of an application.
* Add Task based retry logic with try catch + exception reporting + hardware changed event

* Update MemoryGroup.cs

* Update RAMSPDToolkitDriver.cs

* Update RAMSPDToolkitDriver.cs

* Mutate _hardware field to avoid enumeration exceptions

* Add Report + set configureAwait on the Delay.
2025-07-21 21:28:46 +02:00
PhyxionNL 8dc7d17e45 NetworkGroup thread safety 2025-07-21 18:15:58 +02:00
PhyxionNL 250cdc6d3f Update SuperIOHardware.cs 2025-07-21 17:30:49 +02:00
PhyxionNL 8d18f151ce Update Model.cs 2025-07-21 17:24:58 +02:00
aeeviandPhyxionNL 719ef68908 Added support for Asus ROG STRIX X870-I Gaming WIFI (#1566)
* added asus rog strix x870i gaming wifi

* Add chipset fan temp and control

* Update SuperIOHardware.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-07-21 17:20:01 +02:00
PhyxionNL e920eca98d Fix whitespace 2025-07-21 17:03:44 +02:00
fd3bfeb7c5 GIGABYTE X870 AORUS ELITE WIFI7 (ITE IT8696E, ITE IT87952E) (#1510)
* Initial support for Gigabyte X870 AORUS ELITE WIFI 7 and ITE IT8696E

* remove unintentional gitignore change

* Add support of X870E AORUS ELITE WIFI7

* Remove X870E

* move x870 to its own case

* rename fan#3

* apply suggestion from code review

* Fix broken merge

* Update IT87XX.cs

* Update IT87XX.cs

---------

Co-authored-by: davidmoellmann <public.cushy530@passinbox.com>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-07-21 17:01:53 +02:00
Maciej ZonskiandPhyxionNL 4a964dd6c4 Add support for ROG STRIX X870-I GAMING WIFI (#1794)
* Add support for ROG STRIX X870-I GAMING WIFI

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-07-21 16:57:07 +02:00
xnaughtandPhyxionNL 6267899eb8 Fix null reference in MemoryGroup when Ring0 is disabled. (#1796)
* Create RAMSPDToolkitDriver with null when Ring0 is absent

* Update MemoryGroup.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-07-21 16:55:20 +02:00
Alcolawl 3b1c1cbd12 Add support for three additional MSI motherboards (#1791)
* Add Support for MSI B840P PRO WIFI

* Rectify loop mathematical operator syntax

* Add support for two additional motherboards

Z890 Gaming Plus Wifi and Pro Z890-S Wifi Project Zero
2025-07-17 13:30:56 +02:00
coldaysandPhyxionNL e94018d7d5 Add option to disable Ring0 driver installation (#1777)
* Add option to disable Ring0 driver installation

* Update Computer.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-07-09 23:24:57 +02:00
M 6c6cfa5827 Fix crash when a USB device doesn't have a product name and HidSharp triggers an IOException (HidSharp.Exceptions.DeviceIOException). (#1650)
This happens for example with some Razer keyboards
2025-06-23 11:37:58 +02:00
ab6e5a9681 Add support for ROG STRIX B760-I GAMING WIFI (#1731)
Co-authored-by: fuzzy01 <fuzzy01@server.fake>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-06-23 11:35:16 +02:00
mirko93s ae0f0808b2 Add support for Asrock B450M Pro4 R2.0 (#1730)
* Add support for Asrock B450M Pro4 R2.0

* fixed indexes

Voltages are taken from the R1.0 board, since they all match up even tho some of them aren't shown in any other place (bios or other hw monitoring softwares), but I assume they are correct. Temperatures differ from the R1.0 ones, with only the motherboard one being correct while the other temperatures don't increase by much, or at all, even udner heavy load.
2025-06-23 11:33:45 +02:00
BlacktempelandPhyxionNL 5027bd9d57 Add DIMM Temperature to LHM. (#1743)
* Add DIMM Temperature to LHM.

* Remove RAMSPDToolkit as submodule and use nuget package instead.
Upgrade System.Management assembly (required for nuget package).
Implement retry mechanism for RAM detection due to possible issue at system boot.

* Change to static field.

* Driver now back in LHM.
Ring0 replaced with OLS implementation.

* Update package version.

* Undo most of changes.
Implement IDriver interface.

* Change package to new one.

* Review changes.
Explicitly set UseWMI (current default is also false).

* PR comments:
Now having one DimmMemory instance per RAM stick.
Separated memory sensors into two new classes.

* PR feedback

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-06-23 11:31:17 +02:00
Blacktempel 9cefa1c93a Samsung NVME now being detected properly. (#1762) 2025-06-21 15:04:31 +02:00
Nicholas Flintham e6c9dd9853 Add Support for ASUS STRIX Z790-E WIFI II (#1727) 2025-06-13 16:12:32 +02:00