Artigo: 126962 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Quando tenta executar um grande número de programas baseados no Windows, as mensagens de erro ?Memória Esgotada? surgem quando tenta iniciar novos programas ou tenta utilizar programas que já se encontrem em execução, embora ainda exista disponível bastante memória física e memória no ficheiro de paginação.

Causa

Este comportamento pode ocorrer se a área dinâmica para dados do ambiente de trabalho no subsistema WIN32 estiver esgotada.

Nota: este problema ocorre mais frequentemente no Windows NT 3.5, uma vez que o tamanho predefinido da área dinâmica para dados do ambiente de trabalho é de 512 K. No Windows NT 3.1, o valor predefinido é 3072 K. A predefinição foi reduzida para aumentar o desempenho.

Resolução

Importante: esta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorrecta. Assim, certifique-se de que segue estes passos cuidadosamente. Para uma maior segurança, efectue uma cópia de segurança do registo antes de o modificar. Deste modo, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como efectuar uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
322756 Como efectuar cópias de segurança e restaurar o registo no Windows
Para nos solicitar a correcção deste problema, consulte a secção ?Corrigir por mim?. Se preferir corrigir o problema sozinho, consulte a secção ?Deixar-me corrigir o problema?.

Corrigir por mim



Para corrigir este problema automaticamente, clique no botão ou hiperligação Corrigir. Clique em Executar na caixa de diálogo Transferência de Ficheiros e siga os passos indicados no assistente de correcção.

Corrigir este problema
Correcção de problemas da Microsoft 50496

Notas
  • Este assistente pode estar apenas em inglês. Contudo, a correcção automática também funciona para versões do Windows noutros idiomas.
  • Se não estiver a trabalhar no computador que tem o problema, pode guardar a solução de correcção numa unidade flash ou num CD e, depois, executá-la no computador que tem o problema.
  • Caso esta medida não resolva o seu problema, aumente a memória do computador.

Em seguida, avance para a secção ?O problema está corrigido??.



Deixar-me corrigir o problema

Para corrigir este problema, aumente o tamanho da área dinâmica para dados do ambiente de trabalho:
  1. Execute o Editor de Registo (Regedt32.exe).
  2. A partir da subárvore
    HKEY_LOCAL_MACHINE
    , aceda à seguinte chave:
    \System\CurrentControlSet\Control\Session Manager\SubSystems
  3. Seleccione o valor Windows.
  4. No menu Editar, escolha Cadeia.
  5. Aumente o parâmetro SharedSection.

    Para o Windows NT:
    o SharedSection especifica as áreas dinâmicas para dados do ambiente de trabalho e de sistema utilizando o seguinte formato:
    SharedSection=xxxx,yyyy
    Adicione ?,256? ou ?,512? após o número yyyy.

    Para Windows 2000, Windows XP e Windows Server 2003:
    o SharedSection utiliza o seguinte formato para especificar as áreas dinâmicas para dados do ambiente de trabalho e de sistema:
    SharedSection=xxxx,yyyy,zzzz
    Para sistemas operativos de 32 bits, aumente o valor yyyy para ?12288?;
    Aumente o valor zzzz para ?1024?.
    Para sistemas operativos de 64 bits, aumente o valor yyyy para ?20480?;
    Aumente o valor zzzz para ?1024?.

Mais Informação

O Windows NT utiliza uma área dinâmica para dados com memória especial para todos os programas baseados em Windows e executáveis no ambiente de trabalho. A área dinâmica para dados do ambiente de trabalho é utilizada para todos os objectos (janelas, menus, canetas, ícones, etc.). Quando estão em execução muitos programas baseados no Windows, a memória desta área dinâmica para dados pode esgotar-se. Quando não há memória suficiente para satisfazer um pedido de atribuição, normalmente o sistema devolve um erro e notifica o utilizador de que está a ficar sem memória disponível. Alguns programas não reagem bem à falha e, em alguns casos, pode não haver memória suficiente para criar a caixa de diálogo da mensagem de erro. Em consequência, a operação solicitada falha sem qualquer indicação.

A chave SharedSection é uma cadeia longa, quando visualizada no Editor de Registo. O valor predefinido desta chave é o seguinte.
   %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
				


O primeiro valor SharedSection (1024) define o tamanho da área dinâmica para dados comum para todos os ambientes de trabalho. Isto inclui a tabela de identificadores global (os identificadores do Windows são exclusivos do computador) e as definições de sistema partilhadas (como, por exemplo, SystemMetrics). É pouco provável que venha a necessitar de alterar este valor.

O segundo valor SharedSection (3072) controla o tamanho da área dinâmica para dados do ambiente de trabalho associada a uma estação de trabalho interactiva (utilizada para objectos Windows). Este valor estático é utilizado para impedir que aplicações de comportamento erróneo consumam demasiados recursos. Devido ao facto de a área dinâmica para dados do ambiente de trabalho estar mapeada para o espaço de endereços de cada processo, este valor não deve ser definido para um valor arbitrariamente elevado (uma vez que provoca diminuição de desempenho), mas deve ser aumentado o suficiente apenas para permitir que todas as aplicações necessárias sejam executadas.

O terceiro valor SharedSection (512) controla o tamanho da área dinâmica para dados para cada ambiente de trabalho associada a uma estação de trabalho ?não interactiva?. Se este valor não estiver presente, o tamanho da área dinâmica para dados do ambiente de trabalho para estações de trabalho não interactivas será o mesmo especificado para as estações de trabalho interactivas (o segundo valor SharedSection).
Para mais informações acerca dos parâmetros da chave SharedSection, clique no número de artigo que se segue para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
184802 PROBLEMA: o User32.dll ou o Kernel32.dll não inicializam

O problema está corrigido?

  • Verifique se o problema foi corrigido. Se o problema estiver corrigido, terminou esta secção. Se o problema não estiver corrigido, pode contactar o suporte.
  • Agradecemos os seus comentários. Para enviar comentários ou comunicar problemas com esta solução, deixe um comentário no blogue ?Corrigir por mim? ou envie-nos uma mensagem de correio electrónico.

Propriedades

Artigo: 126962 - Última revisão: 10 de novembro de 2010 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • 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 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
Palavras-chave: 
kbenv kbmsifixme kbfixme KB126962

Submeter comentários

 

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