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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 184802 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
184802 PRB: "User32.dll" oder "Kernel32.dll" wird nicht initialisiert
Wichtig: Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Bevor Sie die Registrierung bearbeiten, vergewissern Sie sich bitte, dass Sie die Registrierung wiederherstellen können, falls ein Problem auftritt. Weitere Informationen zum Erstellen einer Sicherungskopie, zum Wiederherstellen und Bearbeiten der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
256986 Beschreibung der Microsoft Windows-Registrierung
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Gelegentlich kann es vorkommen, dass eine durch CreateProcess() oder CreateProcessAsUser() ausgeführte Anwendung fehlschlägt und eine der folgenden Fehlermeldungen angezeigt wird:
Die Initialisierung der DLL "<System>\system32\user32.dll" ist fehlgeschlagen. Der Prozess wird nicht normal beendet.
Die Initialisierung der DLL "<System>\system32\kernel32.dll" ist fehlgeschlagen. Der Prozess wird nicht normal beendet.
Der fehlgeschlagene Prozess gibt den Exitcode 128 oder
ERROR_WAIT_NO_CHILDREN zurück.

Ursache

Der Fehler hat eine der folgenden Ursachen:
  1. Der ausgeführte Prozess hat keinen korrekten Sicherheitszugriff auf die Arbeitsstation und den Desktop, die mit dem Prozess verbunden sind.
  2. Der Desktopheap für das System ist ausgeschöpft.

Weitere Informationen

Ursache 1:

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

Der an CreateProcess() oder CreateProcessAsUser() übergebene IpDesktop-Member der Struktur STARTUPINFO gibt an, welche Arbeitsstation und welcher Desktop mit dem ausgeführten Prozess verbunden sind. Der ausgeführte Prozess muss korrekten Sicherheitszugriff auf die Arbeitsstation und den Desktop haben, die hier angegeben sind.

Weitere Informationen zum Beheben von Sicherheitsproblemen mit Arbeitsstationen und Desktops finden Sie im folgenden Artikel der Microsoft Knowledge Base:
165194 CreateProcessAsUser()-windowstations und Desktops

Ursache 2:

Der Desktopheap für das System ist ausgeschöpft.

Jedem Desktop-Objekt auf dem System ist ein Desktopheap zugewiesen. Das Desktop-Objekt verwendet den Heap, um Menüs, Hooks, Zeichenfolgen und Fenster zu speichern. Das System weist Desktopheap von einem systemweiten 48-MB-Puffer zu. Neben Desktopheaps verwenden auch Drucker- und Schriftartentreiber diesen Puffer.

Desktops sind mit Arbeitsstationen verbunden. Eine Arbeitsstation kann null oder mehr Desktops enthalten. Die Größe des Desktopheaps, der einem mit einer Arbeitsstation verbundenen Desktop zugewiesen ist, kann über den folgenden Registrierungswert geändert werden.

Hinweis: Dieser Registrierungswert ist nur gültig, wenn die Option /3GB nicht verwendet wird. Die Option /3GB wird in der Datei "Boot.ini" angegeben.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
Die Standarddaten für diesen Registrierungswert sehen in etwa wie folgt aus (alle Daten in einer Zeile):
   %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
				
Über die numerischen Werte nach "SharedSection=" wird gesteuert, wie Desktopheap zugewiesen wird. Diese SharedSection-Werte sind in KB angegeben. Es gibt separate Einstellungen für Desktops, die mit interaktiven, und Desktops, die mit nicht interaktiven Arbeitsstationen verbunden sind.

Hinweis: Wenn die SharedSection-Werte in der Registrierung geändert werden, muss das System neu gestartet werden, damit die Änderungen wirksam werden.

Warnung: Die unkorrekte Verwendung des Registrierungseditors kann schwerwiegende Probleme verursachen, die das gesamte System betreffen und eine Neuinstallation des Betriebssystems erforderlich machen. Microsoft kann nicht garantieren, dass Probleme, die von einer falschen Verwendung des Registrierungseditors herrühren, behoben werden können. Benutzen Sie den Registrierungseditor auf eigene Verantwortung.

Der erste SharedSection-Wert (1024) definiert die Heapgröße, die alle Desktops gemeinsam haben. Hierzu gehören die globale Handletabelle, die Handles auf Fenster, Menüs, Symbole, Cursors etc. enthält, und gemeinsame Systemeinstellungen. Es ist unwahrscheinlich, dass Sie diesen Wert jemals ändern müssen.

Der zweite SharedSection-Wert (3072) definiert die Größe des Desktopheaps für jeden Desktop, der mit der "interaktiven" Arbeitsstation WinSta0 verbunden ist. Der Speicher in diesem Desktopheap wird von Benutzerobjekten wie Hooks, Menüs, Zeichenfolgen und Fenstern genutzt. Es ist unwahrscheinlich, dass Sie diesen zweiten SharedSection-Wert jemals ändern müssen.

Jeder Desktop, der in der interaktiven Arbeitsstation erstellt wird, verwendet den Standard-Desktopheap von 3072 KB. Standardmäßig gibt es drei Desktops, die vom System in "Winsta0" erstellt werden:
  • Winlogon
  • Standard - Der Standardanwendung-Desktop wird von allen Prozessen verwendet, für die im Strukturmember STARTUPINFO.lpDesktop der Eintrag "Winsta0\default" angegeben ist. Wenn der IpDesktop-Strukturmember NULL ist, werden die Arbeitsstation und der Desktop vom übergeordneten Prozess übernommen. Alle Dienste, die unter dem Konto "LocalSystem" mit aktivierter Startoption Datenaustausch zwischen Dienst und Desktop zulassen ausgeführt werden, verwenden "Winsta0\Default". Alle diese Prozesse nutzen denselben gemeinsamen Desktopheap, der mit dem Standardanwendung-Desktop verbunden ist.
  • Bildschirmschoner - Der Bildschirmschoner-Desktop wird in der interaktiven Arbeitsstation (WinSta0) erstellt, wenn ein Bildschirmschoner angezeigt wird.
Der dritte SharedSection-Wert (512) definiert die Größe des Desktopheaps für jeden Desktop, der mit einer "nicht interaktiven" Arbeitsstation verbunden ist. Wenn dieser Wert nicht vorhanden ist, entspricht die Größe des Desktopheaps für nicht interaktive Arbeitsstationen der für interaktive Arbeitsstationen definierten Größe (der zweite SharedSection-Wert).

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

Für jeden unter einem Benutzerkonto ausgeführten Dienstprozess erstellt der Dienststeuerungs-Manager einen neuen Desktop in einer nicht interaktiven Arbeitsstation. Auf diese Weise nutzt jeder unter einem Benutzerkonto ausgeführte Dienst die Menge an Desktopheap (in KB), die im dritten SharedSection-Wert angegeben ist. Alle Dienste, die unter dem Konto "LocalSystem" mit nicht aktivierter Option Datenaustausch zwischen Dienst und Desktop zulassen ausgeführt werden, nutzen gemeinsam den Desktopheap des "Standard"-Desktops in der nicht interaktiven Dienst-Arbeitsstation (Service-0x0-3e7$).

Der gesamte Desktopheap, der in den interaktiven und nicht interaktiven Arbeitsstationen verwendet wird, darf den systemweiten 48-MB-Puffer nicht überschreiten.

Durch Verringern des zweiten oder dritten SharedSection-Wertes wird die Anzahl von Desktops erhöht, die in den zugehörigen Arbeitsstationen erstellt werden können. Durch geringere Werte wird die Anzahl der Hooks, Menüs, Zeichenfolgen und Fenster beschränkt, die in einem Desktop erstellt werden können. Umgekehrt wird durch Erhöhen des zweiten oder dritten SharedSection-Wertes die Anzahl von Desktops verringert, die erstellt werden können, aber gleichzeitig wird die Anzahl der Hooks, Menüs, Zeichenfolgen und Fenster erhöht, die in einem Desktop erstellt werden können.

Da der Dienststeuerungs-Manager für jeden unter einem Benutzerkonto ausgeführten Dienst einen neuen Desktop in der nicht interaktiven Arbeitsstation erstellt, wird durch Erhöhung des dritten SharedSection-Wertes die Anzahl der Dienste unter einem Benutzerkonto verringert, die erfolgreich auf dem System ausgeführt werden können. Der Mindestwert, der für den zweiten oder dritten SharedSection-Wert angegeben werden kann, ist 128. Wenn Sie versuchen, einen niedrigeren Wert anzugeben, wird dieser standardmäßig auf 128 gesetzt.

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

Eigenschaften

Artikel-ID: 184802 - Geändert am: Mittwoch, 6. Dezember 2006 - Version: 10.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Win32 Application Programming Interface, wenn verwendet mit:
    • Microsoft Windows NT 4.0
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows XP Professional
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Keywords: 
kbdll kbkernbase kbsecurity kbprb KB184802
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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