Numer ID artykułu: 126962 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Symptomy

Gdy jest uruchomionych wiele programów systemu Windows, próby uruchomienia nowych programów lub skorzystania z programów już działających mogą skutkować zwracaniem komunikatów o błędach „Za mało pamięci”, nawet jeśli nadal jest dostępna duża ilość pamięci fizycznej i w pliku stronicowania.

Przyczyna

Takie działanie może wystąpić wskutek wyczerpania sterty pulpitu podsystemu WIN32.

Uwaga Ten problem występuje częściej w systemie Windows NT 3.5, ponieważ rozmiar domyślny sterty pulpitu wynosi 512 K. W systemie Windows NT 3.1 wartość domyślna to 3072 K. Tę wartość domyślną zmniejszono w celu zwiększenia wydajności.

Rozwiązanie

Ważne W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonywać podane czynności. Aby zapewnić dodatkową ochronę, przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej i przywracania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
322756 Jak wykonywać kopię zapasową rejestru i przywracać go w systemie Windows
Aby automatycznie rozwiązać ten problem, przejdź do sekcji Automatyczne rozwiązywanie problemu. Aby samodzielnie rozwiązać ten problem, przejdź do sekcji Samodzielne rozwiązywanie problemu.

Automatyczne rozwiązywanie problemu



Aby automatycznie rozwiązać ten problem, należy kliknąć przycisk lub łącze Fix it. Następnie należy kliknąć przycisk Uruchom w oknie dialogowym Pobieranie pliku i wykonać kroki kreatora rozwiązywania problemu.

Rozwiąż ten problem
Microsoft Fix it 50496

Uwagi
  • Ten kreator może być dostępny tylko w języku angielskim. Jednak ta poprawka automatyczna działa również w innych wersjach językowych systemu Windows.
  • Jeśli używany komputer nie jest tym, którego dotyczy problem, można zapisać to rozwiązanie w postaci poprawki automatycznej na dysku flash lub CD i uruchomić je na odpowiednim komputerze.
  • Jeśli nie umożliwiło to rozwiązania problemu, należy zwiększyć ilość pamięci komputera.

Teraz przejdź do sekcji Czy problem został rozwiązany?



Samodzielne rozwiązywanie problemu

W celu rozwiązania tego problemu należy zwiększyć rozmiar sterty pulpitu:
  1. Uruchom Edytor rejestru (Regedt32.exe).
  2. W poddrzewie
    HKEY_LOCAL_MACHINE
    przejdź do następującego klucza:
    \System\CurrentControlSet\Control\Session Manager\SubSystems
  3. Wybierz wartość Windows.
  4. W menu Edycja wybierz polecenie Ciąg.
  5. Zwiększ wartość parametru SharedSection.

    W systemie Windows NT:
    Parametr SharedSection określa sterty systemu i pulpitu za pomocą następującego formatu:
    SharedSection=xxxx,yyyy
    Po liczbie yyyy dodaj wartość „,256” lub „,512”.

    W systemie Windows 2000, Windows XP lub Windows Server 2003:
    Parametr SharedSection określa sterty systemu i pulpitu za pomocą następującego formatu:
    SharedSection=xxxx,yyyy,zzzz
    W 32-bitowych systemach operacyjnych zwiększ wartość yyyy do postaci „12288”.
    Zwiększ wartość zzzz do postaci „1024”.
    W 64-bitowych systemach operacyjnych zwiększ wartość yyyy do postaci „20480”.
    Zwiększ wartość zzzz do postaci „1024”.

Więcej informacji

W systemie Windows NT jest używana specjalna sterta pamięci dla wszystkich programów systemu Windows uruchomionych na pulpicie. Sterta pulpitu obsługuje wszystkie obiekty (okna, menu, pióra, ikony itp.). Gdy jest uruchomionych wiele programów systemu Windows, może zabraknąć pamięci w tej stercie. Jeśli nie wystarcza pamięci do spełnienia żądania alokacji, system zwykle zwraca błąd i powiadamia użytkownika, że brakuje pamięci. Niektóre programy nie obsługują tego niepowodzenia w sposób elegancki i czasami brakuje pamięci do utworzenia okna dialogowego z komunikatem o błędzie. W wyniku tego żądana operacja kończy się niepowodzeniem bez powiadomienia.

Klucz SharedSection wyświetlany w Edytorze rejestru jest długim ciągiem. Wartość domyślna tego klucza jest następująca.
   %SystemRoot%\system32\csrss.exe
   ObjectDirectory=\Windows
   SharedSection=1024,3072,512
   Windows=On
   SubSystemType=Windows
   ServerDll=basesrv,1
   ServerDll=winsrv:GdiServerDllInitialization,4
   ServerDll=winsrv:UserServerDllInitialization,3
   ServerDll=winsrv:ConServerDllInitialization,2
   ProfileControl=Off
   MaxRequestThreads=16
				


Pierwsza wartość klucza SharedSection (1024) definiuje rozmiar sterty typowy dla wszystkich pulpitów. Obejmuje to globalną tabelę dojść (dojścia systemu Windows są unikatowe w obszarze komputera) i współużytkowane ustawienia systemowe (np. SystemMetrics). Konieczność zmiany tej wartość jest bardzo mało prawdopodobna.

Druga wartość klucza SharedSection (3072) steruje rozmiarem sterty pulpitu skojarzonej z interakcyjną stacją okna (używaną do obsługi obiektów okien). Ta wartość statyczna służy do zapobiegania zużywaniu zbyt dużej ilości zasobów przez nieodpowiednio działające aplikacje. Ze względu na to, że sterta pulpitu jest mapowana na przestrzeń adresową poszczególnych procesów, nie należy ustawiać dla tej pozycji dowolnie wysokiej wartości, ponieważ może to zmniejszyć wydajność. Należy zwiększyć tę wartość tylko do poziomu umożliwiającego uruchamianie wszystkich potrzebnych aplikacji.

Trzecia wartość klucza SharedSection (512) steruje rozmiarami stert pulpitów związanych z pulpitami skojarzonymi z nieinterakcyjnymi stacjami okien. W przypadku braku tej wartości rozmiary stert pulpitów skojarzonych z nieinterakcyjnymi stacjami okien są takie same jak rozmiar określony dla interakcyjnych stacji okien (druga wartość klucza SharedSection).
Aby uzyskać więcej informacji dotyczących parametrów klucza SharedSection, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
184802 PRB: Nie można zainicjować biblioteki User32.dll lub Kernel32.dll

Czy problem został rozwiązany?

  • Należy sprawdzić, czy problem został rozwiązany. Jeśli problem został rozwiązany, to koniec pracy z tą sekcją. Jeśli problem nie został rozwiązany, można skontaktować się z pomocą techniczną.
  • Prosimy o opinię. Aby przekazać swoją opinię lub zgłosić jakiekolwiek problemy dotyczące tego rozwiązania, można zostawić komentarz w blogu Fix it for me (Automatyczne rozwiązywanie problemu) lub wysłać wiadomość e-mail.

Właściwości

Numer ID artykułu: 126962 - Ostatnia weryfikacja: 11 września 2011 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
Słowa kluczowe: 
kbenv kbmsifixme kbfixme KB126962

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com