Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latest release does not work #4

Closed
thenoname opened this issue Oct 24, 2020 · 13 comments
Closed

Latest release does not work #4

thenoname opened this issue Oct 24, 2020 · 13 comments

Comments

@thenoname
Copy link

When using the lastest released dlls, when launching StreamDeck.exe, I get "Stream Deck has stopped working. A problem caused the program to stop working correctly. Please close the program."

When using version 1.0.0.1, StreamDeck.exe launches correctly.

@atom0s
Copy link
Owner

atom0s commented Oct 24, 2020

What version of Windows and Streamdeck software are you using?

@atom0s
Copy link
Owner

atom0s commented Oct 24, 2020

v1.0.0.2 has been tested with the latest version of StreamDeck software: v4.9.0.13177

It was tested locally by me on the following operating systems:

  • Windows 7 (64bit)
  • Windows 8 (64bit)
  • Windows 8.1 (64bit)

So if your StreamDeck software is older/outdated, I'd recommend updating to the latest version.

@thenoname
Copy link
Author

I am running Windows 7 Enterprise 64 bit and am using Stream Deck 4.9.0.13177.

What is the best way to attach a debugger to the dll? I have never debugged DLLs before but I'd love to step through it to see where it's going wrong.

@thenoname
Copy link
Author

When debugging StreamDeck.exe in Visual Studio I get the following:

Unhandled exception at 0x000007FEFD05B87D (KernelBase.dll) in StreamDeck.exe: 0xC06D007F: Procedure not found (parameters: 0x00000000001CDA60)

@hustlelabs
Copy link

hustlelabs commented Oct 30, 2020

I'm getting the same problem. It appears it's trying to resolve the symbol PowerDeterminePlatformRoleEx from powrprof.dll . The version I have in system32 is 6.1.7601.23403. The Windows 7 version of the DLL does not contain the export, whereas the Windows 8.1 version does contain the export. Additionally, this may be related to one of these from the Changelog from elgato:

Screensaver

Ever wished your Stream Deck could display a custom image when not in use? Your wish is granted with this update! Now, when your Stream Deck goes to sleep, you'll see an image of your choice splashed across the keys.

 

Sleep action

You can now put Stream Deck to bed (and launch your screensaver) with a tap of a key.

@atom0s
Copy link
Owner

atom0s commented Oct 30, 2020

Can you guys give me a list of what plugins you have installed already for the StreamDeck? I am not able to reproduce this with the latest stock install on a Windows 7 (64bit) VM. Everything is working fine for me and no error happening with anything so far. Wondering if this is due to a specific plugin being loaded at startup.

If I can help narrow it down to potentially being the powrprof.dll import you are mentioning I can create a proxy for that as well to deal with it.

@hustlelabs
Copy link

Confirmed a fix. If you patch the byte within file Qt5WebEngineCore.dll at offset 0x554EE62 from 0x45 to 0x00 the program launches well. This patch changes the lazy linking of Qt5's Web Engine to look for PowerDeterminePlatformRole instead of PowerDeterminePlatformRoleEx. The Ex version of this API is only available in Windows 8 or later, whereas the other is available in Vista and later.

@hustlelabs
Copy link

I don't have any plugins installed. The version for Qt5WebEngineCore.dll within the Elgato StreamDeck directory is 5.14.2.0 and my powerprof.dll version on Windows 7 is 6.1.7601.23403 . Is that the same as yours @atom0s ?

@atom0s
Copy link
Owner

atom0s commented Oct 30, 2020

My VM is running Windows 7 Ultimate SP1:

  • QtWebEngineCore.dll - 5.14.2.0
  • powrprof.dll - 6.1.7600.16385 (win7_rtm.090713-1255)

Slightly outdated powrprof compared to yours but should ultimately have the same problem. Strange this isn't a consistent bug/crash on the same/similar setup.

@thenoname
Copy link
Author

thenoname commented Oct 30, 2020 via email

@atom0s
Copy link
Owner

atom0s commented Oct 31, 2020

Out of curiosity, if either of you are able to debug and check, can you see if Qt5WebEngineCore.dll is falling back on its late-loader?

Things are setup to attempt to late-load the API here: Qt5WebEngineCore.dll + 0x3C4209C
This is invoked from: Qt5WebEngineCore.dll + 0x3C42649

If things are attempted for you via this route and not just being killed by the system import loader, then a hook on GetProcAddress can resolve this fairly easily.

Debugging wise, looking to see if those functions are invoked with 'PowerDeterminePlatformRoleEx' as the passed param to be imported/obtained via GetProcAddress.

@atom0s
Copy link
Owner

atom0s commented Oct 31, 2020

Updated my VM and was able to reproduce this now. My assumption with GetProcAddress above works and was correct.

ElgatoLegacy v1.0.0.3 is now released which fixes this issue. :)

@atom0s atom0s closed this as completed Oct 31, 2020
@iBeze
Copy link

iBeze commented Dec 8, 2023

Hi, I'm desperately traing to get my StreamDeck running on a Desk that uses Windows 7 Ultimate Service Pack 1... but it's not working.
The 1.0.0.0 and 1.0.0.1 do not recognize my StreamDeck, means the buttons are just not showing on the deck.
The 1.0.0.2 is not starting the app and the 1.0.0.3 crashes on start.
Any ideas??

Thanks in advance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants