* 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>
* 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.
* 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.
* 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.
* 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.
* 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