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

Crash on Windows 8.1 32bit #120

Open
MarekKnapek opened this issue Aug 12, 2024 · 4 comments
Open

Crash on Windows 8.1 32bit #120

MarekKnapek opened this issue Aug 12, 2024 · 4 comments

Comments

@MarekKnapek
Copy link

Steps to reproduce.

  • open crappy old laptop that I'm using as a RDP thin client
  • install MsRdpEx using the MSI installer
  • double click on some *.rdp file
  • crash

Exception thrown at 0x00000000 in mstscex.exe: 0xC0000005: Access violation executing location 0x00000000.

@awakecoding
Copy link
Collaborator

I'll be frank: I only added x86 support because someone complained they "might need it" and didn't want to be bothered with people asking for it. The fact is that the x86 binaries haven't properly worked in a long while and nobody noticed, kind of proving my point. Also, mstsc detects when the 32-bit executable is launched on 64-bit Windows and relaunches the correct one, and I haven't API hooked that to force 32-bit to work.

Also, Windows 8.1 is EOL now?

@MarekKnapek
Copy link
Author

Yes, Windows 8.1 might be EOL. Sooo... how should this issue proceed? Is adding 32bit support too much difficult / inconvenient for you? Is support for old OS too much difficult / inconvenient for you? If yes, I suggest adding this information to the documentation and to the installer, informing the user that they are using your product on unsupported platform. Otherwise, if you are providing 32bit binaries, they better work as advertised. I'm C / C++ developer myself, maybe I could help you diagnose the root cause of this problem and help you fix it, if you are interested.

@awakecoding
Copy link
Collaborator

I just fixed the calling conventions on the API hooks (https://github.com/Devolutions/MsRdpEx/tree/x86-fixes), which I know was responsible for most of the problems. Now let me see if I can API hook IsWow64Process to force the 32-bit mstsc.exe to launch on 64-bit Windows.

@awakecoding
Copy link
Collaborator

ok so I merged the calling convention fixes, but getting the 32-bit mstsc to run on 64-bit Windows will take more work. I pushed an attempt at hooking IsWow64Process but I'm hitting a crash in Win32DpiApi::CreateInstance - keep in mind that 32-bit mstsc may not be working properly on 64-bit Windows because it's completely untested and unsupported. However, if you try running a build with the calling convention fixes on true 32-bit Windows, there's a chance it might work. I'll accept fixes if you can find the time to do the necessary work, but I won't be spending too much time on it myself, it's low priority for me.

image

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

No branches or pull requests

2 participants