Commit Graph
509 Commits
Author SHA1 Message Date
呉真andPhyxionNL fc15d76600 Add ASUS ROG STRIX B850-E GAMING WIFI Support (#2093)
* Add ASUS ROG STRIX B850-E GAMING WIFI Support

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-12-08 16:59:01 +01:00
A1ive c94df74fba Add support for Gigabyte A320M-S2H (#2094) 2025-12-08 16:58:20 +01:00
David ReneltandPhyxionNL a792c26891 Add intel vram sensors (#2077)
* Add Intel Arc VRAM sensors support

- Implement BDF-based device matching for Intel discrete GPUs
- Add VRAM sensors (total, used, free, load percentage)
- Use D3D device enumeration with fallback logic
- Enable Windows-specific VRAM monitoring for Intel Arc GPUs
- Fix device identification to distinguish between multiple identical GPUs

Resolves issue where both Intel Arc GPUs showed identical VRAM values.
Now each GPU displays unique, accurate memory usage statistics.

* Add defensive validation to GetBdfFromDeviceIdentifier

- Add null/empty check for deviceIdentifier parameter
- Return false explicitly when LastIndexOf('#') returns -1
- Add DEVPROPTYPE.DEVPROP_TYPE_UINT32 validation after property queries
- Use sizeof(uint) instead of hardcoded 4 for buffer sizes
- Apply PCI spec bit masks (5-bit device, 3-bit function)
- Add bus range validation (0-255)

* Revert to Windows DEVPKEY_Device_Address spec masks

Use 0xFFFF masks as per Windows documentation instead of PCI spec
bit widths. The Windows API uses full 16-bit fields for device and
function numbers.

* Update IntelDiscreteGpu.cs

* Update NativeMethods.txt

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-28 21:54:04 +01:00
Betalos (Oussama Thoura) dcc3825521 Add missing T_Sensor from NCT6799D (#2073) 2025-11-25 10:29:07 +01:00
Alcolawl affd01db48 Re-Structure Fan and Control Register Layout for NCT6687DR, Support 10 new MSI Motherboards (#2068)
* Support for 10 new MSI motherboards with NCT6687D-R SIO controller

* Support for newly established fan and control register structure

WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
2025-11-24 16:40:59 +01:00
Blacktempel 5a1a40a549 Fix warnings. (#2072) 2025-11-24 16:39:42 +01:00
Betalos (Oussama Thoura) e0cc2e2d4e FIX Correctly Initialize NCT67XX registries (#2069)
* FIX Correctly Initialize NCT67XX registries

* FIX Correclty address X570 phantom temp indexes

* FIX File formatings
2025-11-24 16:39:05 +01:00
David Renelt 4c9e9f5dfd Add VRAM memory and bandwidth sensors for Intel discrete GPUs (#2067)
- Add GPU Memory Total, Used, Free sensors (SmallData type, in MB)
- Add GPU Memory load sensor (percentage)
- Add GPU Memory Read/Write bandwidth sensors (Throughput type, in B/s)
- Use D3DDisplayDevice API to query VRAM usage via Windows kernel
- Match Intel discrete GPUs using PCI vendor/device IDs
- Include fallback detection for Intel GPUs if initial matching fails
- Bandwidth sensors read from Intel GCL telemetry with unit conversion
2025-11-23 13:45:55 +01:00
Rémi MercierandPhyxionNL f6c2c70a50 Try and migrate the old GigabyteController stuff with PawnIO (#2014)
* Try and migrate the old GigabyteController stuff with PawnIO

* Bring back WinRing0 era GigabyteController stuff
* ISABridge use the PawnIO module with its built-in logic
* Ecio uses LpcIO directly (not sure about the initialization logic in TryCreate() to make this work)

* Code-review

* Fix inverted logic
* Remove IsaBridgeEc field init
* Format document

* Combine logic

* Gigabyte Implementation best attempt

* Update IsaBridgeGigabyteController.cs

* Cleanup and fix enablind logic for Isa version

* Add debug logs

* Update IsaBridgeGigabyteController.cs

* Code review

* Unmap + restore the mmio state  is done through the closing of the module.
* Fix boolean logic
* Restore the fan control byte instead

* Fallback to ECIO if FanControl enable byte is 0xFF

+ add logs to ECIO

* Port back to validation logic

* Allow for one or the other MMIO to be 0

* Wrap enter/exit mmio logic + enter/exit each time

* Keep state of EcioPort enable

* Missing dispose + close order fix

* Update IsaBridgeGigabyteController.cs

* Remove empty line before TryCreate method

* Code review

* Remove try/finally for SW

* Cleanup debug log methods

* Add DEBUG_LOG define conditional

* Misc

* Misc

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-20 19:06:32 +01:00
PhyxionNL e5ec823726 Update Nct677X.cs 2025-11-20 18:31:21 +01:00
Stephen HorvathandPhyxionNL b02fc4c4cf Sensors on Framework Laptops (#1681)
* Begin CrOS implementation for Framework Laptops

* CrOS: Talk directly to the EC, instead of through ACPI

* Add a few Framework models

* Remove early Framework models

These have a different EC, and don't currently work

* Migrate CrOS ECs to PawnIO

* Implement EcCommand and read sensor names

* Add more Framework models

* Add some error handling

* Misc

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-19 10:57:57 +01:00
Rémi MercierandPhyxionNL 0ed17c77ce Nct677x Make the Debug,WriteLine opt in with a symbol define (#2048)
* Make the Debug,WriteLine opt in with a symbol define

Having all these Debug,WriteLine made the update method painfully slow and the running process laggy during a debug session.

* Update Nct677X.cs

* Update Nct677X.cs

* Update Nct677X.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-18 10:34:05 +01:00
Blacktempel c333504957 Update DiskInfoToolkit. (#2046)
Remove usage sensor if any partition on disk is another operating system partition as this leads to incorrectly reported free space.
2025-11-14 14:16:45 +01:00
BlacktempelandPhyxionNL f402533ddf Add limited support for MSI MEG Z790 GODLIKE MAX (#2040)
* Add support for MSI MEG Z790 GODLIKE MAX.

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

* Rename M2_1 to M2 #1 in temperature readings

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-13 16:30:56 +01:00
Jerry Liu 813318d379 Support X870E Apex CPU Sensor Index for BIOS 1804+ (#2041)
X870E Apex's CPU Sensor Index changed from 22 to 21 after the latest BIOS 1804 update.
2025-11-13 10:36:12 +01:00
Rémi Mercier 1ce2d63bd5 Make _lastUpdate per storagedevice, not static. (#2024)
Otherwise throttling will only enable 1 drive per cycle to update, always the first.
2025-11-11 10:38:27 +01:00
Blacktempel c542e856d4 Replace Storage implementation with CrystalDiskInfo based implementation (#2015)
* Replace Storage implementation with CrystalDiskInfo based implementation.

* Formatting.

* Code review.

* Code review.

* Increase space for attribute name in report.

* Implement dynamic disk handling for usage sensor.

Disable unused warnings.

* Further cleanup in NativeMethods.txt and referenced.
2025-11-08 10:53:43 +01:00
objecttothis 517794ce53 Add ASRock X870E Nova WiFi Support (#2012)
* Add ASRock X870E Nova WiFi Support

- Added support for Nuvoton NCT5585D chip
- Added support for Nuvoton NCT6796D-S chip
- Added motherboard-specific switch to select the correct chip due to duplicate chip ID/Revision (see #2005)
- Added chips to disable monitor i/o space lock block
- Added business logic to include chips in _superIOs.Add for the Nct677X() logic.
- Added chips to business logic to properly assign indices for fans, controls, temperatures and voltages.
- Added TSENSOR to the enum for SourceNct67Xxd to display the 3rd thermistor sensor.
- Added Naming and Identification for the X870E Nova WiFi
- Supressed warnings and added documentation

* Corrections

These changes reflect scraping the datasheet for the correct registers, half-registers, halfBits, sourceRegisters and alternateRegisters
- Replaced TSENSOR with AUXTIN5 as it is named in the datasheet
- Corrected Register values
- Reworked indexes and temperature naming

* Requested Changes

- Linked to PR instead of Datasheet which may change.
- Changed descriptions to be more understandable rather than using Datasheet labels

* Removed duplicate TSENSOR in enum
2025-11-06 13:39:13 +01:00
Betalos (Oussama Thoura)andPhyxionNL 7aff2a8a77 FIX missing T_SENSOR of X870e Taichi (#2003)
* FIX missing T sensor 3 of X870e Taichi

* FIX Adjust X870E taichi votages readings

* FIX Conditionally add missing register to NCT6799D

* Update Nct677X.cs

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-11-04 12:46:09 +01:00
Betalos (Oussama Thoura) 0d3b16c704 Add support to Gigabyte b650i AX (#2011)
* Add support to Gigabyte B650I

* Update SuperIOHardware.cs
2025-11-03 17:05:33 +01:00
salvathor79andPhyxionNL 2a886a938d X570_MS7C35 added 2 temperatures from NTCs connected to voltage channels. Fixed Nct67x registers. (#1975)
* X570_MS7C35 added 2 temperature form NTCs connected to voltage channels.
Fix Nct677X registers.

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-31 10:38:03 +01:00
dependabot[bot]PhyxionNLcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Copilot
cbd3f4b1d2 Bump Microsoft.Windows.CsWin32 from 0.3.235 to 0.3.236 (#1999)
* Bump Microsoft.Windows.CsWin32 from 0.3.235 to 0.3.236

---
updated-dependencies:
- dependency-name: Microsoft.Windows.CsWin32
  dependency-version: 0.3.236
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix build compatibility with Microsoft.Windows.CsWin32 0.3.236 (#2000)

* Initial plan

* Fix compatibility with CsWin32 0.3.236 and resource path case sensitivity

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

* Remove unnecessary local variable pData in BatteryGroup.cs

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-30 23:51:27 +01:00
PhyxionNL 5670130347 Refactor value assignment to use new string constructor 2025-10-29 10:27:01 +01:00
PhyxionNL 21e09cb5b1 Refactor devicePath initialization in BatteryGroup
Ref: https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/issues/1946
2025-10-29 10:05:58 +01:00
Arnold VinkandPhyxionNL 4e0ba8959c Added Gigabyte X870 AORUS ELITE WIFI7 ICE support. (#1991)
* Added Gigabyte X870 AORUS ELITE WIFI7 ICE support.

* Update LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/IT87XX.cs

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-27 13:43:23 +01:00
Serial95andPhyxionNL 9ba0002de6 Add Information for Gigabyte GA-MA790X-DS4 motherboard and more (#1980)
* Add Info for Gigabyte GA-MA790X-DS4 and some Typo corrections

* Fix casing of 'VBAT' to 'VBat' in SuperIOHardware

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-24 16:05:12 +02:00
Riccardo Manzan 3abeda696b [#1934] dev: add support for MSI B850M GAMING PLUS WIFI6E (#1967) 2025-10-17 16:45:26 +02:00
PhyxionNL eef7cceee5 Fixes #1956 2025-10-14 18:33:44 +02:00
PhyxionNL df2c5ebc43 Temporarily disable AMD 10 2025-10-09 20:12:23 +02:00
Carlos BederiánandPhyxionNL fe9857c2ed Intel discrete GPU support (#1822)
* Intel discrete GPU support through Intel GCL library

* Formatting

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-09 20:11:02 +02:00
hopsaandStephan Koster 8b42be793b added support for MSI PRO B850-S WIFI6E (#1948)
added identifier string to Identification.cs
added new model enum entry B850S_PRO_WIFI6E
added B850S_PRO_WIFI6E to the list of models that get the NCT6687DR instead of NCT6687D

Co-authored-by: Stephan Koster <skoster@enclustra.com>
2025-10-09 13:06:30 +02:00
EMN-CSharp 31c9ca32d3 Battery.cs: Don't set the Name property, since it overrides custom names. (#1933) 2025-10-04 16:28:12 +02:00
Rémi Mercier 77882ddc82 Fix nullref exception in ATAStorage (#1931) 2025-10-04 16:24:41 +02:00
Serial95 c19f38c27d Add support for ASUS TUF GAMING B450 PLUS II and fixes for some ITE (#1677)
* Add informations for ASUS TUF GAMING B450 PLUS II + some fix

* Improved and more correct IT8665 fixes
2025-10-02 12:36:18 +02:00
Nick Babcock b39bf31fac Fix DimmMemory concatenated identifier (#1923)
Instead of identifiers like `/memory%2Fdimm%2F0`, I'm assuming they are
meant to be split up like `/memory/dimm/0`
2025-10-01 19:25:53 +02:00
PhyxionNL 43fd84d182 Fixes #1824 2025-10-01 12:50:35 +02:00
PhyxionNL 2eb3105252 Merge branch 'master' of https://github.com/LibreHardwareMonitor/LibreHardwareMonitor 2025-10-01 10:42:02 +02:00
PhyxionNL e2227e2d94 Fixes #1919 2025-10-01 10:42:01 +02:00
demorfi bcc197f265 Added base support Asus ROG Crosshair X670E Hero and PSU MSI MEG Ai1300P (#1575)
* Added base support matherboard Asus ROG Crosshair X670E Hero

* Added base support PSU MSI MEG Ai1300P

* Refactoring MSI PSU lib
2025-09-30 19:03:13 +02:00
PhyxionNL d594734225 Move remainder to CsWin32 (#1918) 2025-09-30 18:58:21 +02:00
PhyxionNL 1d7b3223c9 Move more to CsWin32 (#1917) 2025-09-30 16:50:44 +02:00
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