Não inicializar User32. dll ou Kernel32. dll

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 184802
Sintomas
Uma aplicação que é executada por CreateProcess ou CreateProcessAsUser poderá falhar e receberá uma das seguintes mensagens de erro:
Inicialização da biblioteca dinâmica <system>de \system32\user32.dll falhou. O processo está a terminar irregularmente. </system>
Inicialização da biblioteca dinâmica <system>de \system32\kernel32.dll falhou. O processo está a terminar irregularmente. </system>

Além disso, o processo falhou devolve o código de saída 128 ou o seguinte erro:
ERROR_WAIT_NO_CHILDREN
Causa
Esta falha ocorre uma das seguintes razões:
  • O processo executado não tem acesso de segurança correctas para a estação de trabalho e o ambiente de trabalho que estão associadas com o processo.
  • O sistema esgotou-se a pilha de ambiente de trabalho.
Mais Informação

Causa 1

O processo executado não tem acesso de segurança correctas para a estação de trabalho e o ambiente de trabalho que estão associadas com o processo.

O membro lpDesktop da estrutura STARTUPINFO que é passado a CreateProcess ou CreateProcessAsUser Especifica a estação de trabalho e o ambiente de trabalho que estão associadas com o processo executado. O processo executado tem de ter acesso de segurança correctas para a estação de trabalho especificado e o ambiente de trabalho.

Para mais informações sobre como resolver problemas de segurança de estações de janela e ambientes de trabalho, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
165194 Windowstations de CreateProcessAsUser e ambientes de trabalho

Causa 2

O sistema esgotou-se a pilha de ambiente de trabalho.

Todos os objectos de ambiente de trabalho no sistema têm uma pilha de ambiente de trabalho que está associada. O objecto de ambiente de trabalho utiliza a área de dados dinâmicos para armazenar menus, ganchos, cadeias e windows. No Windows Server 2003 e Windows XP de 32 bits, o sistema atribui o ambiente de trabalho da pilha de uma memória intermédia do sistema 48 megabytes (MB). Para além de pilhas de ambiente de trabalho, os controladores de impressora e tipo de letra também utilizar esta memória intermédia.

Ambientes de trabalho associados a estações de janela. Uma estação de trabalho pode conter zero ou mais computadores de secretária. Pode alterar o tamanho da pilha de ambiente de trabalho que é atribuído a um ambiente de trabalho que está associado uma estação de trabalho alterando o seguinte valor de registo.

Nota Não recomendamos que utilize o parâmetro/3GB . O parâmetro /3GB é especificado no ficheiro Boot. ini. O parâmetro /3GB é suportado apenas para sistemas operativos 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 predefinidos para este valor de registo terá o seguinte aspecto (tudo numa só 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 versões diferentes do Windows, os dados predefinidos 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, o Windows 7, o Windows 8, o Windows 8.1 (32 bits) e o Windows Server 2008 (32 bits)
SharedSection=1024,12288,512

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

Os valores numéricos seguintes "SharedSection =" controlar o modo de alocação de pilha de ambiente de trabalho. Estes valores SharedSection são especificados em kilobytes. Existem definições separadas para ambientes de trabalho que estão associados a estações de janela interactivos e não interactivos.

Nota Se alterar os valores de SharedSection no registo, tem de reiniciar o sistema para que as alterações entrem em vigor.

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 incorrectamente. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Para uma maior protecção, efectue o backup do Registro antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como efectuar cópias de segurança e restaurar o registo, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
322756 Como efectuar cópias de segurança e restaurar o registo no Windows

O primeiro valor SharedSection(1024) é o tamanho de memória partilhada comum para todos os ambientes de trabalho. Isto inclui a tabela de identificadores de global. Esta tabela contém alças para windows, menus, ícones, cursores e assim sucessivamente e partilhada definições do sistema. Não é provável que poderia alguma vez ter que alterar este valor.

O segundo valor SharedSectioné o tamanho da pilha de ambiente de trabalho para cada ambiente de trabalho que está associado a estação de trabalho "interactiva" WinSta0. Objectos de utilizador, como ganchos, menus, cadeias e windows consomem memória na pilha ambiente de trabalho. Não é provável que poderia alguma vez ter que alterar este valor.

Cada ambiente de trabalho que é criado na estação de trabalho interactiva utiliza a pilha de ambiente de trabalho predefinido de 3.072 KB. Por predefinição, o sistema cria os seguintes ambientes de trabalho de três em Winsta0:
  • Início de sessão
  • Predefinição
    O ambiente de trabalho de aplicação "Predefinido" será utilizado por todos os theprocesses para o qual "Winsta0\default" é especificada no membro estrutura STARTUPINFO.lpDesktop . Quando o membro de estrutura de lpDesktop é nulo, a estação de trabalho e o ambiente de trabalho são herdadas do processo principal. Todos os serviços que são executados sob a conta LocalSystem, com a opção de arranque dePermitir o serviço para interagir com o ambiente de trabalhoseleccionada irão utilizar "Winsta0\Default". Todos os estes processos irão partilhar a pilha de ambiente de trabalho que está associada com o ambiente de trabalho de aplicação "Predefinido".
  • Protecção de ecrã
    O ambiente de trabalho de protecção de ecrã é criado em estações de Windows interactiva (WinSta0) quando é apresentada uma protecção de ecrã.
O terceiro valor SharedSection é o tamanho da pilha de ambiente de trabalho para cada ambiente de trabalho que está associado uma estação de trabalho "não interactivo". Se este valor não estiver presente, o tamanho da pilha de ambiente de trabalho para estações de janela não interactivos será igual do tamanho especificado para estações de trabalho interactiva (ou seja, o valor de SharedSection segundo).

Se apenas existirem dois valores SharedSection, pode adicionar um terceiro valor para especificar o tamanho da pilha de ambiente de trabalho para ambientes de trabalho que são criados nas estações de janela não interactiva.

Cada processo de serviço que é executado sob uma conta de utilizador irá receber um novo ambiente de trabalho numa estação de janela não interactivos que é criado pelo Gestor de controlo de serviços (SCM). Por conseguinte, cada serviço que é executado sob uma conta de utilizador irá consumir o número de kilobytes de pilha de ambiente de trabalho especificado no terceiro valorSharedSection . Todos os serviços que são executados sob a conta LocalSystem quando Permitir o serviço para interagir com o ambiente de trabalhoé não partilha seleccionada pilha de ambiente de trabalho do ambiente de trabalho "Predefinido" na estação de windows de serviço não interactivos (Service-0x0-3e7$).

A pilha de ambiente de trabalho total que está a ser utilizada nas estações janela interactivos e têm de caber na memória intermédia.

Reduzir o valor de SharedSection segundo ou terceiro irá aumentar o número de ambientes de trabalho que podem ser criados nas estações janela correspondente. Valores mais pequenos irão limitar o número de anzóis, menus, cadeias e windows que podem ser criados num ambiente de trabalho. Por outro lado, aumentar o valor do segundo ou terceiro SharedSectiondiminuirá o número de ambientes de trabalho que podem ser criados. No entanto, isto também irá aumentar o número de anzóis, menus, cadeias e windows que podem ser criados num ambiente de trabalho.

Dado que o SCM cria um novo ambiente de trabalho na estação de janela não interactiva para cada processo do serviço que está em execução sob uma conta de utilizador, um terceiro valorSharedSectionmaior irá reduzir o número de serviços de conta de utilizador que pode executar com êxito no sistema. O mínimo que pode ser especificado para o valor deSharedSectionsegundo ou terceiro é 128. Qualquer tentativa de utilizar um willinstead de valor mais pequeno utilizar 128.

Pilha de ambiente de trabalho é atribuída por User32. dll quando necessita de um processo de objectos de utilizador. Se uma aplicação não estiver dependente de User32. dll, não irá consumir a pilha de ambiente de trabalho.

Nota No Windows Server 2003, o evento específico é registado no registo do sistema quando se verifica uma das seguintes condições:
  • Se o ambiente de trabalho heap ficar cheio, é registado o seguinte evento:

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria de evento: nenhum
    ID do evento: 243
    Data: Data
    Hora: Hora
    Utilizador: n/d
    Computador: Nome do servidor
    Descrição: Uma alocação de pilha do ambiente de trabalho falhou.

    Neste caso, aumente o tamanho de ambiente de trabalho da pilha.
  • Se a pilha de ambiente de trabalho total torna-se o tamanho da memória intermédia de sistema, é registado o seguinte evento:

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria de evento: nenhum
    ID do evento: 244
    Data: Data
    Hora: Hora
    Utilizador: n/d
    Computador: Nome do servidor
    Descrição: Falha ao criar um ambiente de trabalho devido ao esgotamento do ambiente de trabalho da pilha.

    Neste caso, diminua o tamanho de ambiente de trabalho da pilha.
No Windows Server 2003, uma memória intermédia ao nível do sistema é 20 MB quando se verifica uma das seguintes condições:
  • Está num ambiente de serviços de Terminal.
  • O parâmetro /3GB é especificado no ficheiro 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

Microsoft Win32 Application Programming Interface

  • kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)