User32.dll ou Kernel32.dll conseguir inicializar

Traduções de Artigos Traduções de Artigos
Artigo: 184802 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Por vezes, uma aplicação que é executada por falhar ou CreateProcess() CreateProcessAsUser() e receber uma das seguintes mensagens de erro:
Inicialização da biblioteca dinâmica <system> \system32\user32.dll falhou. O processo está a terminar irregularmente.
Inicialização da biblioteca dinâmica <system> \system32\kernel32.dll falhou. O processo está a terminar irregularmente.
O processo falhou devolve o código de saída 128 ou
ERROR_WAIT_NO_CHILDREN

Causa

A falha é causada por um dos seguintes procedimentos:
  1. O processo executado não tem acesso de segurança adequadas a estação e o ambiente de trabalho associado com o processo.
  2. O sistema esgotou a pilha do ambiente de trabalho.

Mais Informação

Causa 1

O processo executado não tem acesso de segurança adequadas a estação e o ambiente de trabalho associado com o processo.

O membro lpDesktop da estrutura STARTUPINFO passado para CreateProcess() ou CreateProcessAsUser() Especifica que estação e ambiente de trabalho está associado com o processo executado. O processo executado tem de ter acesso de segurança adequadas a estação especificada e o ambiente de trabalho.

Para obter mais informações sobre como resolver problemas de segurança com estações de janela e ambientes de trabalho, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
165194CreateProcessAsUser() windowstations e ambientes de trabalho

Causa 2

O sistema esgotou a pilha do ambiente de trabalho.

Todos os objectos do ambiente de trabalho no sistema tem uma pilha do ambiente de trabalho associada. O objecto do ambiente de trabalho utiliza a pilha para armazenar menus, ganchos, cadeias e janelas. O sistema atribui a pilha do ambiente de trabalho a partir de uma memória intermédia 48 MB de todo o sistema. Para além do ambiente de trabalho pilhas, impressora e controladores de tipo de letra também utilizam esta memória intermédia.

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

Nota A Microsoft não recomenda a utilizar o parâmetro/3 GB. O parâmetro/3 GB é especificado no ficheiro boot.ini.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows
Os dados predefinidos para este valor de registo irão ser semelhante o seguinte (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
				
os valores numéricos a seguir "SharedSection =" controlo como ambiente de trabalho da pilha é atribuída. Estes valores SharedSection são especificadas em kilobytes. Existem definições em separado para ambientes de trabalho associados a estações de janela interactivos e não interactivos.

Nota Se os valores de SharedSection no registo são modificados, o sistema tem de ser reiniciado as alterações entrem em vigor.

importante Esta secção, método ou tarefa contém passos que indicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorrecta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Criar uma para protecção adicional, cópia de segurança do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para obter 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 visualizar o artigo na Microsoft Knowledge Base:
322756Como efectuar uma cópia de segurança e restaurar o registo no Windows


O primeiro valor de SharedSection (1024) é o tamanho de memória partilhada comum a todos os ambientes de trabalho. Isto inclui a tabela de identificador global, que contém identificadores de janelas, menus, ícones, cursores e assim sucessivamente e definições de sistema partilhados. É improvável que alguma vez será necessário alterar este valor.

O segundo valor SharedSection (3072) é o tamanho da pilha de ambiente de trabalho para cada ambiente de trabalho que está associado a "interactivo" estação WinSta0 . Objectos de utilizador como rotinas, menus, cadeias e janelas consumam memória na pilha ambiente de trabalho. É improvável que alguma vez será necessário alterar este valor SharedSection segundo.

Cada ambiente de trabalho que é criado na estação de janela interactivo utiliza a pilha de ambiente de trabalho predefinido 3072 KB. Por predefinição, existem três ambientes de trabalho criadas em Winsta0 pelo sistema:
  • início de sessão
  • predefinição - A "predefinido" ambiente de trabalho da aplicação será utilizado por todos os processos para a qual "Winsta0\default" é especificado no membro STARTUPINFO.lpDesktop estrutura. Quando o membro de estrutura lpDesktop for NULL , a estação e o ambiente de trabalho é herdada do processo principal. Todos os serviços que são executados na conta LocalSystem com a opção de arranque Permitir serviço para interagir com o ambiente de trabalho seleccionada irão utilizar "Winsta0\Default". Todos os estes processos vão partilhar a mesma pilha ambiente de trabalho associada com o ambiente de aplicação "Predefinido" trabalho.
  • protecção de ecrã - O ambiente de trabalho de protecção de ecrã é criado na estação de janela interactivo (WinSta0) quando uma protecção de ecrã é apresentada.
O terceiro valor SharedSection (512) é o tamanho da pilha de ambiente de trabalho para cada ambiente de trabalho está associado uma estação "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 ao tamanho especificado para estações de janela interactiva (o valor de SharedSection segundo).

Se apenas existirem dois valores SharedSection, pode adicionar ", 512" como o terceiro valor para especificar o tamanho da pilha de ambiente de trabalho para ambientes de trabalho criado na janela não interactivos estações.

Cada processo de serviço executado sob uma conta de utilizador irá receber um novo ambiente de trabalho numa estação de janela não interactiva criada pelo serviço de controlo ' Gestor de ' (SCM). Assim, cada serviço executado sob uma conta de utilizador irá consumir o número de kilobytes de pilha do ambiente de trabalho especificado no terceiro valor SharedSection. Todos os serviços executados na conta LocalSystem com Permitir que o serviço para interagir com o ambiente de trabalho não partilha seleccionada a pilha do ambiente de trabalho do ambiente de trabalho "Predefinido" na estação de janelas de serviço não interactivos (Service-0 x 0-3e7 $).

A pilha do ambiente de trabalho total a ser utilizada as estações de janela interactivos e não interactivos tem de caber na memória intermédia 48 MB todo o sistema.

Diminuir os valores de SharedSection segundo ou terceiro aumentará o número de computadores de secretária que podem ser criados nas estações de janela correspondentes. Valores mais pequenos limitará o número de rotinas, menus, cadeias e janelas que podem ser criadas dentro de um ambiente de trabalho. Por outro lado, aumentar os valores de SharedSection segundo ou terceiro irá diminuir o número de computadores de secretária que podem ser criados, mas irá aumentar o número de rotinas, menus, cadeias e janelas que podem ser criadas dentro de um ambiente de trabalho.

Uma vez que o SCM cria um novo ambiente de trabalho na estação de janela não interactiva para cada processo de serviço que está a executar sob uma conta de utilizador, um valor maior do ambiente de trabalho para o terceiro valor SharedSection irá reduzir o número de serviços de conta de utilizador que pode executar com êxito no sistema. O valor mínimo que pode ser especificado para o valor de SharedSection segundo ou terceiro é 128. Qualquer tentativa de utilizar um valor menor predefinida como 128.

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

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

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria do evento: nenhum
    ID do evento: 243
    Data: Date
    Hora: Time
    Utilizador: N/d
    Computador: ServerName
    Descrição: Falha de alocação de pilha do ambiente de trabalho.

    Neste caso, aumente o tamanho da pilha do ambiente de trabalho.
  • Se a área do ambiente de trabalho total para dados dinâmicos torna-se o tamanho da memória intermédia de todo o sistema, é registado o seguinte evento:

    Tipo de evento: aviso
    Origem do evento: Win32k
    Categoria do evento: nenhum
    ID do evento: 244
    Data: Date
    Hora: Time
    Utilizador: N/d
    Computador: ServerName
    Descrição: Não foi possível criar um ambiente de trabalho devido à exaustão da pilha do ambiente de trabalho.

    Neste caso, reduzir o tamanho da pilha do ambiente de trabalho.
No Windows Server 2003, uma memória intermédia todo o sistema é 20 MB quando uma das seguintes condições for verdadeira:
  • Estiver num ambiente dos serviços de terminal.
  • O parâmetro/3 GB for especificado no ficheiro Boot.ini.

Propriedades

Artigo: 184802 - Última revisão: 26 de fevereiro de 2008 - Revisão: 11.3
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Application Programming Interface nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows Server 2003 Standard Edition
Palavras-chave: 
kbmt kbdll kbkernbase kbprb kbsecurity KB184802 KbMtpt
Tradução automática
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

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