Newbie Spellweaver
- Joined
- Sep 26, 2008
- Messages
- 31
- Reaction score
- 22
This is a remake of Gemrid's guide. I thought it would be a good idea to explain this problem in more detail with lots of screenshots, so that beginners can understand better, as it can be a little confusing.
For more information on these errors, you can see Gembrid's guide here.
So let's get started. The error you are experiencing is as follows:
After a few hours of your server being online, your game server and/or connect server show the error: "GetQueuedCompletionStatus". This, in some cases, stops the users connecting to your server - they get stuck at the login screen. In other cases, the server select button disappears and users cannot click on the button to connect to your server.
In order to remove these errors, you first need to know what program it is that's initiating these errors - is it the game server, or the connect server, or both? You can find this information in the logs of both the game server and the connect server - search for "response" or "GetQueuedCompletionStatus" in both logs, then you'll know if it's the game server or the connect server (or both) that's causing the error.
So now you know what program is causing the error, we can begin to disable these errors, which will make your server run properly, 24/7, without any crashes.
Follow the steps below CAREFULLY.
How to Remove This Error From the Game Server
1. First things first, download OllyDBG from here:
2. Open your GameServer.exe file in OllyDBG (make a backup of your gameserver incase you mess up!)
3. First, we are going the search for the GetQueuedCompletionStatus comment. This will enable us to see what errors the game server already bypasses.
4. A window will appear like the following.
5. Scroll down until you find 'GetQueuedCompletionStatus'. Right click -> Find References to Import.
6. A new window will appear. Double click on the first line.
7. Revert back to the original window. You will see the following:
8. Find at least 5 free slots within your gameserver.exe file. Make a note of the expression you are going to use. I am using 0043F16D in this screenshot.
9. Once you have made a note of the expression you are going to use, scroll back up to the 'GetQueuedCompletionStatus' comment and right click on the line below 'CMP DWORD PTR SS:[EBP-30],3E3' and then select 'Assemble'. The following box will appear.
10. We are now going to write the code which tells the game server to jump to the free slots. Use the expression you made a note of earlier. An example: JMP 0043F16D.
11. Now scroll down to your free slot which you have told the game server to jump to (in my case it's 0043F16D). Begin to write the code. To do this, right click on your free slot and select 'Assemble'. Then type the following: CMP [DWORD SS:EBP-30],3E3 (remember to change the EBP-30 to whatever it is in your game server, as they can be different).
For more information on these errors, you can see Gembrid's guide here.
So let's get started. The error you are experiencing is as follows:
After a few hours of your server being online, your game server and/or connect server show the error: "GetQueuedCompletionStatus". This, in some cases, stops the users connecting to your server - they get stuck at the login screen. In other cases, the server select button disappears and users cannot click on the button to connect to your server.
In order to remove these errors, you first need to know what program it is that's initiating these errors - is it the game server, or the connect server, or both? You can find this information in the logs of both the game server and the connect server - search for "response" or "GetQueuedCompletionStatus" in both logs, then you'll know if it's the game server or the connect server (or both) that's causing the error.
So now you know what program is causing the error, we can begin to disable these errors, which will make your server run properly, 24/7, without any crashes.
Follow the steps below CAREFULLY.
How to Remove This Error From the Game Server
1. First things first, download OllyDBG from here:
You must be registered to see links
2. Open your GameServer.exe file in OllyDBG (make a backup of your gameserver incase you mess up!)
3. First, we are going the search for the GetQueuedCompletionStatus comment. This will enable us to see what errors the game server already bypasses.
4. A window will appear like the following.
5. Scroll down until you find 'GetQueuedCompletionStatus'. Right click -> Find References to Import.
6. A new window will appear. Double click on the first line.
7. Revert back to the original window. You will see the following:
8. Find at least 5 free slots within your gameserver.exe file. Make a note of the expression you are going to use. I am using 0043F16D in this screenshot.
9. Once you have made a note of the expression you are going to use, scroll back up to the 'GetQueuedCompletionStatus' comment and right click on the line below 'CMP DWORD PTR SS:[EBP-30],3E3' and then select 'Assemble'. The following box will appear.
10. We are now going to write the code which tells the game server to jump to the free slots. Use the expression you made a note of earlier. An example: JMP 0043F16D.
11. Now scroll down to your free slot which you have told the game server to jump to (in my case it's 0043F16D). Begin to write the code. To do this, right click on your free slot and select 'Assemble'. Then type the following: CMP [DWORD SS:EBP-30],3E3 (remember to change the EBP-30 to whatever it is in your game server, as they can be different).
Last edited: