Fare clic su OK per chiudere l’applicazione.
Se un applicazione non dipende da user32.dll ovviamente non consumerà memoria nel desktop heap. Osserviamo come un applicazione arriva ad usare il desktop heap:
1. un applicazione ha bisgno di creare una finestra, chiama CreateWindowEx in user32.dll
2. User32.dll fa una chiamata di sistema in kernel mode e finisce in win32k.sys
3. Win32k.sys alloca l’oggetto finestra dal desktop heap
4. Un handle della finestra (un HWND) è tornato al chiamante
4. L’applicazione e altri processi nella stessa sessione possono riferirsi a quest’oggetto finestra attraverso il suo HWND.
Per Risolvere questo problema, Aumentare la dimensione dell’heap del desktop:
Eseguire l’editor del Registro di sistema (Regedt32.exe).
In corrispondenza della sottostruttura HKEY_LOCAL_MACHINE passare alla chiave Seguente: System CurrentControlSet Control Session Manager SubSystems
Selezionare il Valore Windows.
SCEGLIERE Stringa dal menu Modifica.
Aumentare il Valore del Parametro SharedSection.
SharedSection specifica gli heap del sistema e del desktop utilizzando il Seguente Formato:
SharedSection =xxxx,aaaa
Dove xxxx definisce la dimensione massima dell’heap A livello di sistema (in kilobyte) e aaaa definisce la dimensione dell’heap per desktop. Il valore predefinito dell’heap per desktop in Windows NT 3.5 (512 KB) è in grado di supportare circa 2,500 finestre. Aumentando l’heap del desktop di 256 KB o 512 KB, la memoria raggiunge in genere una dimensione Sufficiente uno Evitare i messaggi di errore “Memoria insufficiente”.