Al momento sei offline in attesa che la connessione Internet venga ristabilita

Non inizializzare User32. dll o Kernel32. dll

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 184802
Sintomi
Un'applicazione che viene eseguita da CreateProcess o CreateProcessAsUser potrebbe avere esito negativo e viene visualizzato uno dei seguenti messaggi di errore:
Inizializzazione della libreria di collegamento dinamico <system>\system32\user32.dll non riuscita. Il processo è terminato in modo anomalo. </system>
Inizializzazione della libreria di collegamento dinamico <system>\system32\kernel32.dll non riuscita. Il processo è terminato in modo anomalo. </system>

Inoltre, il processo non riuscito restituisce il codice di uscita 128 oppure il seguente errore:
ERROR_WAIT_NO_CHILDREN
Cause
Questo errore si verifica per uno dei seguenti motivi:
  • Il processo in esecuzione non dispone di accesso di protezione corretto per la postazione e desktop sono associati al processo.
  • Il sistema ha esaurito heap del desktop.
Informazioni

Causa 1

Il processo in esecuzione non dispone di accesso di protezione corretto per la postazione e desktop sono associati al processo.

Il membro lpDesktop della struttura STARTUPINFO passato a CreateProcess o CreateProcessAsUser specifica la postazione e desktop sono associati al processo in esecuzione. Il processo in esecuzione deve avere accesso di protezione corretto per la finestra specificata e nel desktop.

Per ulteriori informazioni su come risolvere problemi di protezione con postazioni e desktop, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
165194 Desktop e CreateProcessAsUser () windowstations

Causa 2

Il sistema ha esaurito heap del desktop.

Ciascun oggetto del desktop nel sistema dispone di un heap del desktop associato a esso. L'oggetto desktop utilizza l'heap per memorizzare menu, hook, stringhe e finestre. In Windows Server 2003 e Windows XP a 32 bit, il sistema alloca l'heap del desktop da un buffer di sistema 48 megabyte (MB). Oltre a dagli heap del desktop, i driver della stampante e del carattere utilizzare questo buffer.

I desktop sono associati a postazioni. Una stazione finestra può contenere zero o più desktop. È possibile modificare la dimensione dell'heap del desktop viene allocato per un desktop associato a una stazione finestra modificando il seguente valore del Registro di sistema.

Nota Non è consigliabile utilizzare l'opzione/3GB . Viene specificata l'opzione /3GB nel file Boot. ini. L'opzione /3GB è supportata solo per i sistemi operativi a 32 bit.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
In Windows Server 2003 e Windows XP a 32 bit, i dati predefiniti per questo valore del Registro di sistema saranno simile al seguente (in una sola riga):
   %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				

In diverse versioni di Windows, i dati predefiniti per questo valore del Registro di sistema saranno simile al seguente:

Per Windows Vista RTM (32-bit)
SharedSection=1024,3072,512

Per Windows Vista SP1, Windows 7, Windows 8, Windows 8.1 (32-bit) e Windows Server 2008 (32-bit)
SharedSection=1024,12288,512

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

I valori numerici che segue "SharedSection =" controllare la modalità di allocazione dell'heap del desktop. Questi valori SharedSection vengono specificati in kilobyte. Vi sono impostazioni separate per i desktop sono associati a postazioni interattive e non interattive.

Nota Se si modificano i valori SharedSection nel Registro di sistema, è necessario riavviare il sistema rendere effettive le modifiche.

Importante Questa sezione, metodo o attività contiene passaggi su come modificare il Registro di sistema. Tuttavia, può causare seri problemi la modifica del Registro di sistema in modo non corretto. Pertanto, assicurarsi di seguire attentamente i passaggi. Per maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Quindi, è possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristinare il Registro di sistema, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
322756 Eseguire il backup e ripristino del Registro di sistema in Windows

Il primo valore SharedSection(1024) è la dimensione dell'heap condiviso comune a tutti i desktop. Ciò include la tabella degli handle globali. Questa tabella contiene punti di controllo di windows, menu, icone, cursori e così via e le impostazioni di sistema condivise. È improbabile che si dovrebbe mai modificare questo valore.

Il secondo valore SharedSectionè la dimensione dell'heap del desktop per ciascun desktop associato con il segnaposto "interattiva" WinSta0. Gli oggetti utente quali hook, menu, stringhe e finestre consumano memoria nell'heap del desktop allocata. È improbabile che si dovrebbe mai modificare questo valore.

Ciascun desktop creato nella postazione interattiva utilizza l'heap del desktop predefinito di 3.072 KB. Per impostazione predefinita, il sistema crea i seguenti tre desktop in Winsta0:
  • Winlogon
  • Impostazione predefinita
    Desktop "Predefinito" applicazione verrà utilizzato da tutti i theprocesses per il quale è specificato "Winsta0\default" nel membro di struttura STARTUPINFO.lpDesktop . Quando il valore della struttura lpDesktop è NULL, la postazione e desktop sono ereditate dal processo padre. Tutti i servizi che vengono eseguiti con l'account LocalSystem con l'opzione di avvioConsenti al servizio di interagire col Desktopselezionata utilizzeranno "Winsta0\Default". Tutti questi processi condividono l'heap del desktop associato con il desktop dell'applicazione "Default".
  • Screen saver
    Il desktop dello screen saver viene creato nella workstation interattiva (WinSta0) quando viene visualizzato uno screen saver.
Il terzo valore SharedSection è la dimensione dell'heap del desktop per ciascun desktop associato a una postazione "non interattiva". Se questo valore non è presente, la dimensione dell'heap del desktop per postazioni non interattive sarà pari alla dimensione specificata per postazioni interattive (vale a dire il valore SharedSection secondo).

Se solo due valori SharedSectionsono presenti, è possibile aggiungere un terzo valore per specificare la dimensione dell'heap del desktop per i desktop creati in postazioni non interattive.

Ciascun processo viene eseguito con un account utente verrà visualizzato un nuovo desktop in una postazione non interattiva creata da Gestione controllo servizi (SCM). Pertanto, ogni servizio viene eseguito con un account utente consumerà il numero di kilobyte di heap del desktop specificata nel terzo valoreSharedSection . Tutti i servizi che vengono eseguiti con l'account LocalSystem quando Consenti al servizio di interagire col Desktopè non selezionato Condivisione desktop heap del desktop "Predefinito" nella stazione di windows di servizio non interattivo (Service-0x0-3e7$).

L'heap del desktop totale utilizzato nelle postazioni interattive e non interattive deve essere contenuta nel buffer.

Diminuendo il valore SharedSection secondo o terzo aumenterà il numero di computer desktop che possono essere creati nelle corrispondenti postazioni. Valori più bassi limiteranno il numero di hook, menu, stringhe e finestre che possono essere create in un desktop. D'altra parte, aumentando il valore SharedSectionsecondo o terzo comporterà una riduzione del numero di desktop che possono essere creati. Tuttavia, questo aumenterà anche il numero di hook, menu, stringhe e finestre che possono essere create in un desktop.

Poiché il gestore SCM crea un nuovo desktop nella postazione non interattiva per ciascun processo in esecuzione con un account utente, un terzo valoreSharedSectionmaggiore consente di ridurre il numero di servizi per l'account utente che possono essere eseguiti correttamente nel sistema. Il valore minimo che può essere specificato per il valoreSharedSectionsecondo o terzo è 128. Qualsiasi tentativo di utilizzare un willinstead di valore più piccolo utilizzare 128.

Heap del desktop viene allocato da User32. dll quando un processo necessita oggetti utente. Se un'applicazione non è dipendente da User32. dll, non consumano heap del desktop.

Nota In Windows Server 2003, l'evento specifico viene registrato nel Registro di sistema quando viene soddisfatta una delle seguenti condizioni:
  • Se l'heap del desktop risulta pieno, viene registrato il seguente evento:

    Tipo di evento: avviso
    Origine evento: Win32k
    Categoria evento: nessuno
    ID evento: 243
    Data: Data
    Ora: Ora
    Utente: n/d
    Computer: NomeServer
    Descrizione: Allocazione heap del desktop non riuscita.

    In questo caso, aumentare la dimensione dell'heap del desktop.
  • Se l'heap del desktop totale diventa la dimensione del buffer a livello di sistema, viene registrato il seguente evento:

    Tipo di evento: avviso
    Origine evento: Win32k
    Categoria evento: nessuno
    ID evento: 244
    Data: Data
    Ora: Ora
    Utente: n/d
    Computer: NomeServer
    Descrizione: Impossibile creare un desktop a causa dell'esaurimento di heap del desktop.

    In questo caso, ridurre la dimensione dell'heap del desktop.
In Windows Server 2003, un buffer a livello di sistema è di 20 MB quando viene soddisfatta una delle seguenti condizioni:
  • Trova in un ambiente Servizi Terminal.
  • Viene specificata l'opzione /3GB nel file Boot. ini.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 184802 - Ultima revisione: 06/12/2015 17:28:00 - Revisione: 1.0

Microsoft Win32 Application Programming Interface

  • kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtit
Feedback