GDI Resource Pool Issues.....



This article can be applied to Workstations and Servers but please ensure you read the warning shown near the registry key changes otherwise you will loose data for which the owner of this website cannot be held responsible.


The GDI resource pool is crucial for your Operating System to display key components within the OS the GDI systems job is outlined as....

The Graphics Device Interface (GDI) is the graphical system that manages what appears on the screen. It also provides graphics support for printers and other output devices. It draws graphic primitives, manipulates bitmaps, and interacts with device-independent graphics drivers, including those for display and printer output device drivers.
 

This is usually fine most of the time....but if you process lots of photos using the thumbnail view in Windows XP or Vista then this will load up the GDI pool with "objects" which normally is not a problem.....but if you continually open large images this pool can get exhausted....when it does Windows performs like Windows 3.11.....
The image below shows what happens to an Explorer window when this pool gets exhausted...

Right....so I have Windows XP looking like Windows 3.11.......how can I tell that this is about to happen?
Well, if you load up task manager and click on the Processes tab and choose "View" then "Select Columns" then add "GDI Objects" you will notice that when you order by "GDI objects" that the Explorer process is taking up (in this case) 9,9964/10,000 objects...



WARNING :Make a backup before editing the registry and please note that incorrecly changing GDI values will severly affect your Windows stability...please, please ensure that you are compotent at using Reigstry Editing tools
If you make a mistake changing this key you will require ERD2005, DaRT2007 or some other CD/DVD based recovery method to recover your Windows installation and data!


Well that is not good as windows is running with a GDI pool that is 99% used.....so how can we fix this issue, well the answer is via the Registry, the key you require is in the location:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindowsGDIProcessHandleQuota
There are two keys that need changing which are shown below:

1. GDIProcessHandleQuota from Decimal 10000 to 16384

2. USERProcessHandleQuota from Decimal 10000 to 18000

When these registry keys have been changed you will need to reboot your workstation/server