Você está offline; aguardando reconexão

User32. dll ou Kernel32. dll não inicializa

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 184802
Sintomas
Um aplicativo que é executado pelo CreateProcess ou CreateProcessAsUser pode falhar e você receber uma das seguintes mensagens de erro:
Inicialização da biblioteca dinâmica <system>\system32\user32.dll falha. O processo está terminando de forma anômala. </system>
Inicialização da biblioteca dinâmica <system>\system32\kernel32.dll falha. O processo está terminando de forma anômala. </system>

Além disso, o processo falha retorna o código de saída 128 ou o erro a seguir:
ERROR_WAIT_NO_CHILDREN
Causa
Esta falha ocorre por uma das seguintes razões:
  • O processo executado não tem acesso de segurança correto para a estação de janela e a área de trabalho que estão associados com o processo.
  • O sistema ficou sem heap da área de trabalho.
Mais Informações

Causa 1

O processo executado não tem acesso de segurança correto para a estação de janela e a área de trabalho que estão associados com o processo.

O membro lpDesktop da estrutura STARTUPINFO que é passado para CreateProcess ou CreateProcessAsUser Especifica a estação de janela e a área de trabalho que estão associados com o processo executado. O processo executado deve ter acesso de segurança correto para a área de trabalho e estação da janela especificada.

Para obter mais informações sobre como resolver problemas de segurança com estações de janela e áreas de trabalho, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
165194 Desktops e estações Windows CreateProcessAsUser)

Causa 2

O sistema ficou sem heap da área de trabalho.

Cada objeto da área de trabalho no sistema tem um heap da área de trabalho que está associado a ele. O objeto da área de trabalho usa a pilha para armazenar menus, ganchos, cadeias de caracteres e windows. No Windows Server 2003 e Windows XP de 32 bits, o sistema aloca heap da área de trabalho de um buffer do todo o sistema 48 megabytes (MB). Além de pilhas de área de trabalho, os drivers de impressora e fonte também usar esse buffer.

Áreas de trabalho são associadas a estações de janela. Uma estação de janela pode conter zero ou mais áreas de trabalho. Você pode alterar o tamanho de heap de área de trabalho alocada para uma área de trabalho que está associada uma estação de janela, alterando o seguinte valor de registro.

Observação: Não recomendamos que você use a opção/3GB . A opção /3GB é especificada no arquivo Boot. ini. A opção /3GB é suportada apenas para sistemas operacionais de 32 bits.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
No Windows Server 2003 e Windows XP de 32 bits, os dados padrão para este valor de registo serão semelhante ao seguinte (tudo em uma linha):
   %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows   SharedSection=1024,3072,512 Windows=On SubSystemType=Windows   ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3   ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off   MaxRequestThreads=16				

Em diferentes versões do Windows, os dados padrão para este valor de registo serão semelhante ao seguinte:

Para o Windows Vista RTM (32 bits)
SharedSection=1024,3072,512

Para o Windows Vista SP1, Windows 7, Windows 8, Windows 8.1 (32 bits) e Windows Server 2008 (32 bits)
SharedSection=1024,12288,512

Para o Windows Vista, Windows 7, Windows 8, Windows 8.1 (64 bits), Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 e Windows Server 2012 R2 (64 bits)
SharedSection=1024,20480,768

Os valores numéricos que seguir "SharedSection =" controlar como o heap de área de trabalho é alocado. Esses valores SharedSection são especificados em quilobytes. Existem configurações separadas para desktops que estão associadas com estações de janela não-interativos e interativos.

Observação: Se você alterar os valores de SharedSection no registro, você deve reiniciar o sistema para que as alterações entrem em vigor.

Importante: Essa seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estes passos cuidadosamente. Para obter mais proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número do artigo a seguir para visualizá-lo na Base de Conhecimento Microsoft:
322756 Como fazer backup e restaurar o registro no Windows

O primeiro valor SharedSection(1024) é o tamanho do heap compartilhados comuns a todas as áreas de trabalho. Isso inclui a tabela de identificadores globais. Esta tabela contém identificadores de janelas, menus, ícones, cursores e assim por diante e configurações de sistema compartilhadas. É improvável que você nunca precisa alterar esse valor.

O segundo valor SharedSectioné o tamanho do heap da área de trabalho para cada área de trabalho que está associada com a estação de janela "interativo" WinSta0. Objetos de usuário como ganchos, menus, seqüências de caracteres e windows consomem memória nessa heap da área de trabalho. É improvável que você nunca precisa alterar esse valor.

Cada área de trabalho é criada na estação de janela interativa usa heap da área de trabalho padrão de 3.072 KB. Por padrão, o sistema cria as seguintes áreas de trabalho de três Winsta0:
  • Winlogon
  • Padrão
    Aplicativo de área de trabalho "Padrão" será usado por todos os theprocesses para que "Winsta0\default" é especificada no membro de estrutura STARTUPINFO.lpDesktop . Quando o membro de estrutura lpDesktop for nulo, a estação de janela e a área de trabalho são herdadas do processo pai. Todos os serviços que são executados na conta LocalSystem com a opção de inicialização dePermitir que o serviço interaja com a área de trabalhoselecionada irá usar "Winsta0\Default". Todos esses processos compartilharão o heap da área de trabalho que está associado com o aplicativo de área de trabalho "Padrão".
  • Proteção de tela
    A área de trabalho de proteção de tela é criada na estação de Windows interativa (WinSta0) quando uma proteção de tela é exibida.
O terceiro valor SharedSection é o tamanho do heap da área de trabalho para cada área de trabalho que está associada uma estação de janela "não-interativo". Se este valor não estiver presente, o tamanho do heap da área de trabalho para estações de janela não-interativos será o mesmo como o tamanho especificado para estações de janela interativa (ou seja, o segundo valor SharedSection ).

Se apenas dois valores SharedSectionestiverem presentes, você pode adicionar um terceiro valor para especificar o tamanho de heap de área de trabalho para áreas de trabalho que são criadas em estações de janela não-interativos.

Todo processo de serviço que é executado sob uma conta de usuário receberá uma nova área de trabalho em uma estação de janela interativa que é criada pelo Gerenciador de controle de serviço (SCM). Portanto, cada serviço executado sob uma conta de usuário consumirão o número de kilobytes de heap de área de trabalho é especificado no terceiro valorSharedSection . Todos os serviços que são executados na conta LocalSystem ao Permitir que o serviço interaja com a área de trabalhoé não compartilhamento selecionado heap da área de trabalho da área de trabalho "Padrão" na estação do windows de serviço não-interativa (serviço-0x0-3e7$).

O heap da área de trabalho total que está sendo usado em estações de janela interativa e não interativa deve caber no buffer.

Diminuir o valor de SharedSection segundo ou terceiro aumentará o número de desktops que podem ser criados nas estações de janela correspondente. Valores menores limitará o número de pontos de fixação, menus, seqüências de caracteres e janelas que podem ser criadas em uma área de trabalho. Por outro lado, aumentando o valor de SharedSectionsegundo ou terceiro diminuirá o número de desktops que podem ser criados. No entanto, isso também aumentará o número de pontos de fixação, menus, seqüências de caracteres e janelas que podem ser criadas em uma área de trabalho.

Como o SCM cria uma nova área de trabalho na estação de janela interativa para cada processo de serviço que estiver sendo executado sob uma conta de usuário, um terceiro valor deSharedSectionmaior reduzirá o número de serviços de conta de usuário podem executar com êxito no sistema. O mínimo que pode ser especificado para o valor deSharedSectionsegundo ou terceiro é 128. Qualquer tentativa de usar um willinstead de valor menor use 128.

Heap da área de trabalho alocada pelo User32. dll quando um processo precisa de objetos de usuário. Se um aplicativo não é dependente na User32. dll, que não será consumida heap da área de trabalho.

Observação: No Windows Server 2003, o evento específico é registrado no log do sistema quando uma das seguintes condições for verdadeira:
  • Se o heap da área de trabalho ficar cheio, o seguinte evento é registrado:

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria do evento: nenhuma
    Identificação do evento: 243
    Data: Data
    Tempo: Tempo
    Usuário: n/d
    Computador: Nome_do_servidor
    Descrição: Falha de uma alocação de heap de área de trabalho.

    Nesse caso, aumente o tamanho do heap de área de trabalho.
  • Se o heap de área de trabalho total torna-se o tamanho do buffer de todo o sistema, o seguinte evento é registrado:

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria do evento: nenhuma
    Identificação do evento: 244
    Data: Data
    Tempo: Tempo
    Usuário: n/d
    Computador: Nome_do_servidor
    Descrição: Falha ao criar uma área de trabalho devido à exaustão da heap da área de trabalho.

    Nesse caso, diminua o tamanho de heap de área de trabalho.
No Windows Server 2003, um buffer de todo o sistema é 20 MB quando uma das seguintes condições for verdadeira:
  • Você está em um ambiente do Terminal Services.
  • A opção /3GB é especificada no arquivo Boot. ini.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 184802 - Última Revisão: 06/13/2015 08:17:00 - Revisão: 1.0

Interface de Programação de Aplicativos do Microsoft Win32

  • kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtpt
Comentários