tylerszabo / RGB-Fusion-Tool

A command line tool for calling Gigabyte's RGB Fusion SDK
GNU General Public License v3.0
184 stars 21 forks source link

dllexp_GetMaxDivision fails on GA-AX370-Gaming 5 #33

Open Benman2785 opened 6 years ago

Benman2785 commented 6 years ago

Bug Report

Error: System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF bei GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision() bei GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI) bei GLedApiDotNet.RGBFusionMotherboard..ctor() --- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) bei System.Activator.CreateInstance(Type type, Boolean nonPublic) bei System.Activator.CreateInstance(Type type) bei System.Lazy1.CreateValue() bei System.Lazy1.LazyInitValue() bei System.Lazy`1.get_Value() bei RGBFusionTool.RGBFusionMain.LazyMotherboard.SetAll(LedSetting ledSetting) bei RGBFusionTool.Application.Main(String[] args)

tylerszabo commented 6 years ago

Could you please paste the output of the information gathering script:

$winver = [System.Environment]::OSVersion.Version.ToString()
$toolver = (Get-Item .\RGBFusionTool.exe).VersionInfo.FileVersion.ToString()
$hashes = @("GLedApi.dll", "GLedApiDotNet.dll", "layout.ini", "Mono.Options.dll", "RGBFusionTool.exe", "ycc.dll") | % { Get-FileHash -Algorithm SHA256 -Path $_ }
$biosversion = (Get-WmiObject -Class Win32_BIOS).SMBIOSBIOSVersion
$motherboard = (Get-WmiObject -Class Win32_BaseBoard).Product

Write-Host -ForegroundColor White -BackgroundColor Black @"

Hashes:

$(($hashes | % { "$($.Hash) $(Split-Path -Leaf $.Path)"}) -join "`n")

"@
Out-Null | Write-Host

That'll catch a bunch of low hanging fruit.

It looks like "X370-Gaming 5 WIFI" and "AX370-ULTRA Gaming" are listed in layout.ini so I would have thought one of those two would get it. We could also try guessing another value for whatever LFType is and see if we get lucky. But first, I want to ensure all dependencies are there ;)

Benman2785 commented 6 years ago

i dont know what hashes you need ;)

tylerszabo commented 6 years ago

I like to look at the hashes of the built files. For example:

1D0D8D01382CD2617AEA26162C2A3FA2FF845B93A815882CC74B512568DF6BC4 GLedApi.dll
3A4AF1C0C90085286E24794A1DBA4CD373BC508B3B4951E3668E4B967457E3F8 GLedApiDotNet.dll
C99AB9E904CE507F43D27528D51C09BB824E2071EC52571E50F7CED938857002 layout.ini
05FC657EB5B5D563DE7807DF6EE07FC8B89DC6F6F08EB76C30E5192429FBBDCF Mono.Options.dll
06011A2510004D752794F1E89A20E9D12DB81C86B53259A5C8E24BCB8DB080C2 RGBFusionTool.exe
4D38B1D9F614D0E49C22E7273FCB56F109A6ED34632247D1B60C14D72D495569 ycc.dll

Unfortunately Gigabyte doesn't do a great job of maintaining metadata so this way I can try to reproduce the issue on the specific version, if possible. It's also helped catch when someone forgot some of the dependencies (such as ycc.dll and layout.ini).

tylerszabo commented 6 years ago

Try running that that PowerShell script from the RGBFusionTool directory (it specifically checks those DLLs).

Benman2785 commented 6 years ago
- Windows Version: 10.0.17134.0
- RGB Fusion Tool Version: 0.9.2
- Motherboard: AX370-Gaming 5
- BIOS: F23f

Hashes:

D39AB2041C3A93ECB38CE446BBBC1C3DA1E3292EC25A301E4ADF3A588EE7A8F3 GLedApi.dll
A32CD85D5087290CD259902E7BF5F7559EFD4C2FD98A50B6BFFD9B98ACF86C27 GLedApiDotNet.dll
702A91752CE59B11078AB8F3428ECD1F871267D8AD45E414173CCF0A69FEE9D4 layout.ini
05FC657EB5B5D563DE7807DF6EE07FC8B89DC6F6F08EB76C30E5192429FBBDCF Mono.Options.dll
39CE6E142BBDDDE1FBA2BDFD5CC4030014E979E82B843D8762E2912E1207E2FB RGBFusionTool.exe
64BF4B2F0C84333E239DDA24F82BF8EAD22B7DB905C50FADE262283CA96703AD ycc.dll
Benman2785 commented 6 years ago

btw - bios is spoken mod

tylerszabo commented 6 years ago

Does it work if run from an Administrator prompt?

Did it work before flashing to the custom BIOS? (There have been a few others boards that turned out to just not be supported by the SDK so I wouldn't rush to downgrade your BIOS just to check this.)

Do Gigabyte's own tools work?

tylerszabo commented 6 years ago

I also realized I should start asking for event log information. If you look under "Windows Logs\Application" in "Event Viewer" do you see events from source "GLedApi"? If so could you include the contents. For instance, I see Failed RasiePrivileges() each time I run because I don't run elevated (so far that hasn't been a problem).

Benman2785 commented 6 years ago

"Error: System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF bei GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision() bei GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI) bei GLedApiDotNet.RGBFusionMotherboard..ctor() --- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) bei System.Activator.CreateInstance(Type type, Boolean nonPublic) bei System.Activator.CreateInstance(Type type) bei System.Lazy1.CreateValue() bei System.Lazy1.LazyInitValue() bei System.Lazy`1.get_Value() bei RGBFusionTool.RGBFusionMain.LazyMotherboard.SetAll(LedSetting ledSetting) bei RGBFusionTool.Application.Main(String[] args)"

as admin GA RGB Fusion tool: works

nothing appears about that in event log

tylerszabo commented 6 years ago

I'm afraid at this point it's past my ability to test :( I'd suggest opening a support ticket with Gigabyte to see if they support the SDK on your motherboard.

Benman2785 commented 6 years ago

ok - than i write GA again ;)