* Add support for Asus B550-I Gaming motherboard
* Change detection to switch in case if any fan are not present
* Keep consistent naming
* Update Identification.cs
* Update SuperIOHardware.cs
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Extend ASUS EC detection to other Crosshair VIII models
Tested to work on my CROSSHAIR VIII Dark Hero.
*Should* also work on the Impact, Formula and Extreme boards since they use the same sensors and thereby most likely the same EC.
Alternatively, an extra case with name.Equals("ROG CROSSHAIR VIII DARK HERO", StringComparison.OrdinalIgnoreCase) could be used instead.
* Add ROG_CROSSHAIR_VIII_DARK_HERO model
* minor formatting
* Update EmbeddedController.cs
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
WMI queries do not have a timeout by default and can subsequently hang.
This commit adds timeouts to avoid these hangs.
On timeout, `Get` will throw a `ManagementException` that has an error
code of `ManagementStatus.Timedout`. In the case of abstract storage,
this exception will be silently swallowed and the statistics from WMI
not updated until the next update interval, which seems appropriate.
The storage group, on the other hand, a timeout there would cause an
initialization exception which would be propagated up to the caller
(which seems ok as something must be terribly wrong for that WMI query
to fail).
The code was also updated to call dispose for all the WMI objects. I
don't see this causing a behavior difference, but I found it better to
be safe than sorry.
The timeouts were chosen to be a compromise between returning in a
reasonable timeframe and allowing WMI, which can be terribly slow, to
return the query.
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.
* Fix NullReferenceException, if NZXT CAM is running at the same time
* Remove unnecessary variable declaration
Remove never used variable.
* Update SMBios.cs
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Add support for X570 Taichi from ASRock
add new model name
add specific mapping for temp and fan readings
addressing #290
* fix remaining fan names
* Remove unusable temp sensors
* Update SuperIOHardware.cs