User32.dll или Kernel32.dll не удалось инициализировать

Переводы статьи Переводы статьи
Код статьи: 184802 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Иногда приложение, которое выполняется CreateProcess() или CreateProcessAsUser() неудачно и появляется одно из следующих сообщений об ошибке:
Инициализация библиотеки динамической <system>\system32\user32.dll не удалось. Аварийное завершение процесса. </system>
Инициализация библиотеки динамической <system>\system32\kernel32.dll не удалось. Аварийное завершение процесса. </system>
Сбой процесса возвращает код выхода 128 или
ERROR_WAIT_NO_CHILDREN

Причина

Ошибка вызвана одной из следующих:
  1. Выполняемый процесс не имеет правильного безопасности доступа оконной станции и настольных компьютеров, связанных с процессом.
  2. Системе хватает кучи рабочего стола.

Дополнительная информация

Причина 1

Выполняемый процесс не имеет соответствующих прав доступа к оконной станции и настольных компьютеров, связанных с процессом.

Член lpDesktop структуры STARTUPINFO, переданный CreateProcess() или CreateProcessAsUser() указывает, какие оконной станции, связанный с выполняемого процесса рабочего стола. Выполняемый процесс должен иметь соответствующие права доступа к станции указанное окно и рабочий стол.

Дополнительные сведения об устранении неполадок безопасности настольных систем и рабочих станциях щелкните следующий номер статьи базы знаний Майкрософт:
165194 CreateProcessAsUser() windowstations и рабочие столы

Причина 2

Системе хватает кучи рабочего стола.

Каждый объект рабочего стола в системе имеет кучи, связанных с ним. Объект рабочего стола использует кучу для хранения меню, ловушки, строки и windows. Система выделяет кучи рабочего стола из буфера 48 МБ всей системы. Кроме рабочего стола куч принтеров и драйверов шрифта использовать этот буфер.

Настольные компьютеры, связанные с рабочих станциях. Рабочая станция может содержать ноль или более рабочих столов. В следующем разделе реестра, можно изменить размер кучи рабочего стола, выделенных для настольного компьютера, связанного с рабочая станция.

Примечание Корпорация Майкрософт не рекомендует использовать ключ/3 GB. В файле boot.ini указан параметр/3 GB.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
Данные по умолчанию для данного параметра реестра будет выглядеть примерно так (все в одной строке):
   %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
				
Следующие числовые значения "SharedSection =" Управление как системная куче выделяется. Эти SharedSection значения задаются в килобайтах. Существуют отдельные настройки для настольных систем, связанных с интерактивный и неинтерактивный рабочих станциях.

Примечание Если изменяются значения SharedSection в реестре, системы необходимо перезапустить, чтобы изменения вступили в силу.

Важно Этот раздел, метод или задача содержит действия, о том, как внести изменения в реестр. Однако при неправильном изменении реестра могут возникнуть серьезные проблемы. Поэтому точно выполняйте следующие действия. Для дополнительной защиты создайте резервную копию реестра перед внесением изменений. Затем при возникновении неполадок можно восстановить реестр. Для дополнительных сведений о способах создания резервной копии и восстановлении реестра щелкните следующий номер статьи базы знаний Майкрософт:
322756 Как провести резервное копирование и восстановление реестра Windows


Первое значение SharedSection (1024) — размер общей кучи, общие для всех настольных компьютеров. Это включает в себя глобальный дескриптор таблицы, содержащий маркеры windows, меню, значки, курсоры и т. д. и общие системные параметры. Маловероятно, что когда-либо потребуется изменить это значение.

Второе значение SharedSection (большего 3072 пикселей) является размер кучи для каждого настольного компьютера, связанного с WinSta0станции окно «Интерактивные». Пользовательские объекты, такие как обработчики, меню, строки и windows использовать память в этой кучи рабочего стола. Маловероятно, что когда-либо потребуется изменить это второе значение SharedSection.

Каждый рабочий стол, созданный в интерактивной оконной станции использует кучи рабочего стола по умолчанию КБ большего 3072 пикселей. По умолчанию существует три рабочие столы, созданные системой в Winsta0:
  • Winlogon
  • По умолчанию - "по умолчанию" приложение рабочего стола будет использоваться все theprocesses, для которых указан "Winsta0\default" в STARTUPINFO.lpDesktop члена структуры. Когда член структуры lpDesktop имеет значение NULL, окно станции и рабочего стола наследуется от parentprocess. Все службы, которые выполняются под учетной записью «Локальный компьютер» установлен флажок Разрешить службе взаимодействовать с рабочим столом при запуске будет использовать "Winsta0\Default". Все theseprocesses будут совместно использовать же кучи рабочего стола, связанных с настольных приложений «По умолчанию».
  • Хранитель экрана - заставки экрана рабочего стола в интерактивной рабочей станции (WinSta0) создается при отображении экранной заставки.
Третье значение SharedSection (512) — это размер кучи для каждого настольного компьютера, связанного с «неинтерактивных» рабочая станция. Если это значение отсутствует, размер кучи для неинтерактивной рабочих станциях будет такой же, как размер, указанный для интерактивных рабочих станциях (второе значение SharedSection).

Если имеется только два SharedSection значения, можно добавить ", 512" как третье значение, чтобы указать размер кучи рабочего стола для настольных компьютеров, созданных в неинтерактивных рабочих станциях.

Каждый процесс обновления выполняется под учетной записью пользователя получит новый рабочий стол в неинтерактивных рабочая станция создана с помощью диспетчера управления службами (SCM). Таким образом каждая служба выполняется под учетной записью пользователя, использующее указанный в третье значение SharedSection кучи рабочего стола в килобайтах. Все службы выполняются под учетной записью LocalSystem с Разрешить службе взаимодействовать с рабочим столом не выбранного общего ресурса кучи рабочего стола на рабочем столе "По умолчанию" в станции windows неинтерактивной службы (Service-0x0-3e7$).

Общее кучи рабочего стола используется в интерактивном и автономном рабочих станциях должен помещаться в буфер всей системы 48 МБ.

Уменьшение значения SharedSection второй или третий увеличит количество рабочих столов, которые могут быть созданы в соответствующих рабочих станциях. Меньшие значения ограничит число обработчиков, меню, строки и windows, которые могут быть созданы в пределах рабочего стола. С другой стороны увеличение значения SharedSection второй или третий уменьшается количество рабочих столов, которые могут быть созданы, но это увеличит число обработчиков, меню, строки и windows, которые могут быть созданы в пределах рабочего стола.

Поскольку диспетчер управления Службами создает новый рабочий стол в неинтерактивных оконной станции для каждого процесса службы, который выполняется под учетной записью пользователя, большее значение рабочего стола для третье значение SharedSection будет сократить число пользователя учетной записи службы, которые могут успешно выполняться в системе. Минимальное значение, которое можно задать для SharedSection значение второй или третий — 128. Любая попытка использовать меньшее значение по умолчанию 128.

Когда процесс необходима пользовательские объекты User32.dll выделенных кучи рабочего стола. Если приложение не зависит от User32.dll, он не будет потреблять кучи рабочего стола.

Примечание В Windows Server 2003 определенное событие регистрируется в журнале системных событий при выполнении одного из следующих условий:
  • При переполнении кучи рабочего стола, регистрируется следующее событие:

    Тип события: предупреждение
    Источник события: инструкции Win32k
    Категория события: отсутствует
    Код события: 243
    Дата: Дата
    Время: Время
    Пользователь: н/д
    Компьютер: Имя_сервера
    Описание: Не удалось выполнить выделение кучи рабочего стола.

    В этом случае увеличьте размер кучи рабочего стола.
  • Если общее кучи рабочего стола становится размер буфера всей системы, регистрируется следующее событие:

    Тип события: предупреждение
    Источник события: инструкции Win32k
    Категория события: отсутствует
    Код события: 244
    Дата: Дата
    Время: Время
    Пользователь: н/д
    Компьютер: Имя_сервера
    Описание: Не удалось создать рабочий стол, из-за истощения кучи.

    В этом случае уменьшите размер кучи рабочего стола.
В Windows Server 2003 буфера всей системы равен 20 МБ, при выполнении одного из следующих условий:
  • Вы находитесь в среде служб терминалов.
  • В файле Boot.ini указан параметр/3 GB.

Свойства

Код статьи: 184802 - Последний отзыв: 3 марта 2014 г. - Revision: 10.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Win32 Application Programming Interface на следующих платформах
    • Microsoft Windows XP Professional
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Ключевые слова: 
kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 184802

Отправить отзыв

 

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