* 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>
* Check whether battery values are available
* Rename _degradationPercentage to _degradationLevel
* Add support for temperature monitoring
* Include the battery device name and tag in the hardware identifier
* Set sensor index value properly
* Fix temperature conversion
The returned temperature value must be divided, not multiplied.
* Disable sensors that have a "null" value
* Fix random symbols in battery device name and manufacturer
ADL finds multiple logical gpus, this commit avoids multiple
unneeded initializations of AmdGpu class. The main control is moved to
AmdGpuGroup and the ADL_* calls are updated to ADL2_*, using the
context. Adapters using PMlog should be initialized only if sensors are
detected, adapters that pmlog is not enabled or doesn't work, should
fallback previous logic.
* Refactor ADL sensors update
- Check support for each sensor, on OD8 and new PMLog.
- Exclude cards before Vega10 from using PMLog
- Better validation for individual sensor support (for now asic-power/board-power)
- Validate pmlog struct using the lastUpdate, there are situations the
sensors values are corrupted, maybe because something blocking the pointer access to
the struct, but this needs to be verified.
* Update AmdGpu.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Add ADL pmlog support, fix metrics on newer gpus
Newer GPUs needs this to show performance metrics properly. Sample rate
is hard coded (1000ms).
* Clean up
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
There is no entry for `CopyMemory` exported from kernel32.dll as it is
omitted from the following output:
```
dumpbin /exports C:\Windows\System32\kernel32.dll
```
The name we're looking for is `RtlCopyMemory`. This does not affect
traditional .NET framework users as `CopyMemory` was special cased prior
to .NET core
([source](https://github.com/dotnet/runtime/issues/12496#issuecomment-483442084))
The incorrect entry point will cause an `EntryPointNotFoundException`
for NET core users (ref:
https://github.com/nickbabcock/OhmGraphite/issues/214)
There were a couple other entries in kernel32 that are missing:
- CreateFile
- LoadLibrary
Both functions appear to have a `CreateFileA` and `LoadLibraryA`
variant, but I do not know if those are appropriate.