Can any .dll programmer help here, please?
Long story short, I was given a laptop to fix, where randomly when a game was started (by double clicking it's icon) the game would not start, instead you had to double click the icon again to get the game running. I did all the usual tests, but it turns out to be something relatively unknown, apparently - turns out that from Windows Vista onwards, Microsoft include something called Game Explorer in the OS.
I quote
The 'randomness' of the problem is actually whether or not the laptop was online when a game was opened. This problem is fairly unknown, since most off us keep our PCs permanently online, but it is known and hated by a fair few people, apparently.
Several user made solutions are on the 'net, along with later posts about how Microsoft have not cured the Game Explorer offline problem, but have stopped the user made fixes from working (and this is a major OS that we all support, how stupid are we?).
Anyway, one fix I couldn't try is
since the file is no longer available for download (the file sharing site no longer exists), and since that post is that person's only post on that forum, then (s)he is unlikey to see a pm if I send him/her one asking for the file.
So can anyone who understands .dll files please knock up three files for me, all called GameUXLegacyGDFs.dll and I'll try them one at a time to see what works.
What I need these files to do is;
1. File 1 should do nothing at all, just exit (or whatever a .dll file does when it's finished it's task), as that way, I assume, the whole Game Explorer thing will be bypassed.
2. File 2 should suspend a process called rundll32.exe . Not kill or delete the process, just suspend it, as rundll32.exe needs to be present and if it's suspended then it might cure the problem.
3. File 3 should kill the game and then reload the game (which is the same, I hope, as the user opening (starting) the game again.
If anyone can make these files, then please do so if it's not a too much trouble, and either stick them on the 'net, or pm me for my e-mail address, please.
Thanks for reading this, and for more information, see:
http://answers.microsoft.com/en-us/windows/forum/windows_other-gaming/windows-7-game-explorer-interfering-with-game/efd39c74-cfab-4c2c-b6c5-834b8849a1b3
http://answers.microsoft.com/en-us/windows/forum/windows_7-gaming/older-games-causes-rundll32exe-to-open-and-100-cpu/2b15ee2f-b56b-e011-8dfc-68b599b31bf5
http://answers.microsoft.com/en-us/windows/forum/windows_other-gaming/games-do-not-launch-rundll32exe-keeps-using/797b227c-3dca-439b-995f-b179bac7e347
I quote
As we all know, Vista introduced the Game Explorer (GameUX.dll) which incorporates update checking and game information.
What most don't know, is that the instant a game is launched, Rundll.exe is spawned with the GameUX.dll,gameshim parametre and constantly polls the dns, network and domain functions in the OS.
The problem here, lies in the fact that if this process does not receive a response, the Game's process will sit frozen until a response is recieved.
Now the Rundll process actually acts as a mask for the games executable until the response from the servers is received, that said closing the rundll.exe prior to the handover being made will also close the Games executable.
You can work around this in a way by killing the actual game executable, which will keep the rundll open, and then opening the game executable again. However as it is polling the net api's (Wininet), Rundll will consume a full core (13% for my i7), until you close it. which can cause a number of issues in single core games, and the like
The 'randomness' of the problem is actually whether or not the laptop was online when a game was opened. This problem is fairly unknown, since most off us keep our PCs permanently online, but it is known and hated by a fair few people, apparently.
Several user made solutions are on the 'net, along with later posts about how Microsoft have not cured the Game Explorer offline problem, but have stopped the user made fixes from working (and this is a major OS that we all support, how stupid are we?).
Anyway, one fix I couldn't try is
If anyone don't like registry editing or dll file deletion, could probably try replace GameUXLegacyGDFs.dll with this (x86) empty one...
do let me know it is working...
since the file is no longer available for download (the file sharing site no longer exists), and since that post is that person's only post on that forum, then (s)he is unlikey to see a pm if I send him/her one asking for the file.
So can anyone who understands .dll files please knock up three files for me, all called GameUXLegacyGDFs.dll and I'll try them one at a time to see what works.
What I need these files to do is;
1. File 1 should do nothing at all, just exit (or whatever a .dll file does when it's finished it's task), as that way, I assume, the whole Game Explorer thing will be bypassed.
2. File 2 should suspend a process called rundll32.exe . Not kill or delete the process, just suspend it, as rundll32.exe needs to be present and if it's suspended then it might cure the problem.
3. File 3 should kill the game and then reload the game (which is the same, I hope, as the user opening (starting) the game again.
If anyone can make these files, then please do so if it's not a too much trouble, and either stick them on the 'net, or pm me for my e-mail address, please.
Thanks for reading this, and for more information, see:
http://answers.microsoft.com/en-us/windows/forum/windows_other-gaming/windows-7-game-explorer-interfering-with-game/efd39c74-cfab-4c2c-b6c5-834b8849a1b3
http://answers.microsoft.com/en-us/windows/forum/windows_7-gaming/older-games-causes-rundll32exe-to-open-and-100-cpu/2b15ee2f-b56b-e011-8dfc-68b599b31bf5
http://answers.microsoft.com/en-us/windows/forum/windows_other-gaming/games-do-not-launch-rundll32exe-keeps-using/797b227c-3dca-439b-995f-b179bac7e347
Post edited by ewgf on
Comments
But if you replace a system file, like a DLL, you might run into the problem of the OS seeing that the file isn't genuine and wanting to restore it from your original media.
My games for the Spectrum: Dingo, The Speccies, The Speccies 2, Vallation, SQIJ.
Twitter: Sokurah
How do I do that please? I've never even heard of a HOSTS file before, let alone how to alter it, or how to find out what addresses a DLL file uses.
True, but I'm sort of hoping that Microsoft's incompetence will for once work on my side, and Windows won't check the file unless the sfc command is ever used.
hosts file is in here on windows 7
c:\windows\system32\drivers\etc
But luck favours the brave. So, you will need a tool such as TCPView - http://technet.microsoft.com/en-us/sysinternals/bb897437 - to monitor the processes and find out which hosts they are trying to access (e.g. www.microsoft.com), and edit the file C:\windows\system32\drivers\etc\hosts . You need to do this in elevated mode or you won't be able to write to that location. For example, run notepad as administrator. Once you are editing the file, add a line such as the following (using www.microsoft.com as example) for every host connection you were able to monitor:
127.0.0.1 www.microsoft.com
Go offline and run game explorer. Fingers crossed. :-)
/Pedro
Also, you might find that AV software might flag a replacement attempt and quarantine/remove the new files.
Modifying the hosts file does sound like a good approach.
B
zx-diagnostics - Fixing ZX Spectrums in the 21st Century (wiki)
Sinclair FAQ Wiki
It shows how much we take online for granted though, as it didn't occur to me that his laptop would have been offline, though even if it had, I wouldn't have made the connection, as until now I've not heard of this problem.
Anyway, thanks for the advice everyone.