"User32.dll" oder "Kernel32.dll" wird nicht initialisiert.

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 184802
Problembeschreibung
Eine Anwendung, die nach CreateProcess oder CreateProcessAsUser ausgeführt wird fehlschlagen und eine der folgenden Fehlermeldungen angezeigt:
Initialisierung der dynamischen Bibliothek <system>\system32\user32.dll fehlgeschlagen. Der Prozess wird nicht normal beendet. </system>
Initialisierung der dynamischen Bibliothek <system>\system32\kernel32.dll fehlgeschlagen. Der Prozess wird nicht normal beendet. </system>

Der fehlgeschlagene Prozess gibt außerdem Exitcode 128 oder die folgende Fehlermeldung:
ERROR_WAIT_NO_CHILDREN
Ursache
Dieses Problem tritt aus einem der folgenden Gründe:
  • Der ausgeführte Prozess hat keinen korrekten Sicherheitszugriff auf die Arbeitsstation und den Desktop, die dem Prozess zugeordnet sind.
  • Nicht genügend Desktopheap.
Weitere Informationen

Ursache 1

Der ausgeführte Prozess hat keinen korrekten Sicherheitszugriff auf die Arbeitsstation und den Desktop, die dem Prozess zugeordnet sind.

IpDesktop-Member an CreateProcess oder CreateProcessAsUser STARTUPINFO-Struktur gibt die Arbeitsstation und den Desktop mit dem ausgeführten Prozess verbunden sind. Der ausgeführte Prozess muss korrekten Sicherheitszugriff auf die angegebene Arbeitsstation und Desktop.

Weitere Informationen zu Sicherheitsproblemen mit Arbeitsstationen und Desktops, klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base:
165194 CreateProcessAsUser()-WindowStations und desktops

Ursache 2

Nicht genügend Desktopheap.

Jedem desktop-Objekt auf dem System ist ein Desktopheap, dem es zugeordnet ist. Desktop Objekt verwendet den Heap, um Menüs, Hooks, Zeichenfolgen und Windows zu speichern. Das System weist in Windows Server 2003 und Windows XP 32-Bit-Desktopheap aus einem systemweiten 48 Megabyte (MB). Neben Desktopheaps verwenden Druckertreiber und Schriftartentreiber, diesen Puffer.

Desktops sind mit Arbeitsstationen verbunden. Eine Arbeitsstation kann NULL oder mehr Desktops enthalten. Sie können die Größe des Desktopheaps, die für einen Desktop, die eine Arbeitsstation zugeordnet ist zugeordnet wird, indem der folgende Registrierungswert ändern.

Hinweis Verwenden desSchalters/3 GB wird nicht empfohlen. Die Befehlszeilenoption/3 GB wird in der Datei "Boot.ini" angegeben. Die Option/3 GB wird nur für 32-Bit-Betriebssystemen unterstützt.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
In Windows Server 2003 und Windows XP 32-Bit sehen die Standarddaten für diesen Registrierungswert (in einer Zeile) wie folgt:
   %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 anderen Versionen von Windows werden die Standarddaten für diesen Registrierungswert folgendermaßen aussehen:

Für Windows Vista RTM (32-Bit)
SharedSection=1024,3072,512

Für Windows vistasp1, Windows 7, Windows 8, Windows 8.1 (32 Bit) und WindowsServer 2008 (32-Bit)
SharedSection=1024,12288,512

Für Windows Vista, Windows 7, Windows 8, Windows 8.1 (64-Bit), WindowsServer 2008, Windows Server 2008 R2, Windows Server 2012 und Windows Server 2012 R2 (64-Bit)
SharedSection=1024,20480,768

Die numerischen Werte folgenden "SharedSection =" steuern, wie der Desktopheap zugewiesen wird. Diese SharedSection -Werte sind in KB angegeben. Es gibt separate Einstellungen für Desktops mit interaktiven und nicht interaktiven Arbeitsstationen verbunden sind.

Hinweis Wenn Sie SharedSection -Werte in der Registrierung ändern, müssen Sie das System neu starten, damit die Änderung wirksam wird.

Wichtig Dieser Abschnitt bzw. die Methode oder Aufgabe enthält Schritte, die erklären, wie Sie die Registrierung ändern. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie diese Schritte sorgfältig ausführen. Für zusätzlichen Schutz, sichern Sie die Registry, bevor Sie sie ändern. Dann können Sie die Registry wiederherstellen wenn ein Problem tritt auf. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756 Wie Sie die Registrierung in Windows sichern und wiederherstellen können?

Der erste SharedSection-Wert (1024) ist die gemeinsame Heapgröße, die alle Desktops. Dazu gehören die globale Handletabelle. Diese Tabelle enthält Handles auf Windows, Menüs, Symbole, Cursor usw. und gemeinsame Systemeinstellungen. Es ist unwahrscheinlich, dass Sie immer diesen Wert ändern müssen.

Der zweite SharedSection-Wert ist die Größe des Desktopheaps für jeden Desktop, der "interaktiven" Arbeitsstation WinSta0 zugeordnet ist. Benutzerobjekte wie Hooks, Menüs, Zeichenfolgen und Fenstern genutzt Speicher in diesem Desktopheap. Es ist unwahrscheinlich, dass Sie immer diesen Wert ändern müssen.

Jeden Desktop, der in der interaktiven Arbeitsstation erstellt verwendet Standard-Desktopheap 3.072 KB. Das System erstellt die folgenden drei Desktops in "WinSta0":
  • Winlogon
  • Standard
    Desktop Application "Default" wird von allen Theprocesses verwendet "Winsta0\default" in der STARTUPINFO.lpDesktop -Strukturmember angegeben ist. Wenn der IpDesktop-Strukturmember NULL ist, werden die Arbeitsstation und der Desktop vom übergeordneten Prozess geerbt. Alle Dienste, die unter dem Konto LocalSystem, mit der StartoptionService Interaktive Beziehung mit Desktop erlauben ausgeführt werdenverwendet "Winsta0\Default" Diese Prozesse teilen den Desktopheap, der dem Standarddesktop "Anwendung" zugeordnet ist.
  • Bildschirmschoner
    Der Bildschirmschoner-Desktop wird in interaktive Arbeitsstation (WinSta0) erstellt, wenn ein Bildschirmschoner angezeigt wird.
Der dritte SharedSection -Wert ist die Größe des Desktopheaps für jeden Desktop, der mit einer "nicht interaktiven" Arbeitsstation verbunden ist. Wenn dieser Wert nicht vorhanden ist, werden die Größe des Desktopheaps für nicht interaktiven Arbeitsstationen derselben Größe, die für interaktive Arbeitsstationen (d. h. der zweite SharedSection -Wert) angegeben.

Wenn nur zwei SharedSection-Werte vorhanden sind, können Sie hinzufügen einen dritten Wert die Größe des Desktopheaps für Desktops anzugeben, die in nicht interaktiven Arbeitsstationen erstellt werden.

Jeder Prozess, der unter einem Benutzerkonto ausgeführt wird erhält einen neuen Desktop in einem nicht interaktiven Arbeitsstation, von Service Control Manager (SCM) erstellt. Daher verbraucht jeder Dienst, der unter einem Benutzerkonto ausgeführt wird die Anzahl der KB, die im drittenSharedSection -Wert angegeben. Alle Dienste, die unter dem Konto LocalSystem ausgeführt werden beim Dienst Interaktive Beziehung mit Desktop erlaubenist nicht ausgewählten Desktopheap des "Standard"-Desktops in der nicht interaktiven Dienst-Arbeitsstation (Service-0 x 0-3e7$).

Der gesamte Desktopheap, der in den interaktiven und nicht interaktiven Arbeitsstationen verwendet wird, muss in den Puffer passen.

Verringern den zweiten oder dritten SharedSection -Wert erhöht die Anzahl der Desktops, die in den zugehörigen Arbeitsstationen erstellt werden können. Kleinere Werte beschränken die Anzahl der Hooks, Menüs, Zeichenfolgen und Fenster, die in einem Desktop erstellt werden können. Auf der anderen Seite verringert den zweiten oder dritten SharedSection-Wert erhöht die Anzahl der Desktops, die erstellt werden können. Aber erhöht dies auch die Anzahl der Hooks, Menüs, Zeichenfolgen und Fenster, die in einem Desktop erstellt werden können.

Da der SCM einen neuen Desktop in der nicht interaktiven Dienst Prozesse, die unter einem Benutzerkonto ausgeführt wird erstellt, reduziert ein größerer DritterSharedSection-Wert Anzahl Benutzer Kontodienste erfolgreich auf dem System ausführen können. Das Minimum für den zweiten oder drittenSharedSection-Wert angegeben werden kann, ist 128. Ein Versuch, einen kleineren Wert Willinstead verwenden 128.

Desktopheap wird von "User32.dll" zugewiesen, wenn ein Prozess Benutzerobjekte benötigt. Wenn eine Anwendung nicht "User32.dll" abhängig ist, verbraucht es nicht Desktopheap.

Hinweis In Windows Server 2003 wird das spezifische Ereignis im Systemprotokoll protokolliert, wenn eine der folgenden Situationen zutrifft:
  • Wenn der Desktopheap voll wird, wird das folgende Ereignis protokolliert:

    Ereignistyp: Warnung
    Ereignisquelle: Win32k
    Ereigniskategorie: keine
    Ereignis-ID: 243
    Datum: Datum
    Zeit: Zeit
    Benutzer: nicht vorhanden
    Computer: ServerName
    Beschreibung: Eine Desktopheapzuweisung ist fehlgeschlagen.

    In diesem Fall vergrößern Sie den Desktopheap.
  • Wird der gesamte Desktopheap systemweiten Puffergröße, wird das folgende Ereignis protokolliert:

    Ereignistyp: Warnung
    Ereignisquelle: Win32k
    Ereigniskategorie: keine
    Ereignis-ID: 244
    Datum: Datum
    Zeit: Zeit
    Benutzer: nicht vorhanden
    Computer: ServerName
    Beschreibung: Fehler beim Erstellen der Desktop durch Desktopheapauslastung.

    In diesem Fall verkleinern Sie Desktopheap.
In Windows Server 2003 ist ein Puffer systemweiten 20 MB, wenn eine der folgenden Situationen zutrifft:
  • Sie sind in einer Terminaldienste-Umgebung.
  • Die Befehlszeilenoption/3 GB wird in der Datei "Boot.ini" angegeben.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 184802 – Letzte Überarbeitung: 01/31/2016 22:17:00 – Revision: 2.0

Microsoft Win32 Application Programming Interface

  • kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtde
Feedback