WindowsКак сделать

Что такое conhost.exe и почему он работает?

Вы, несомненно, читаете эту статью, потому что вы наткнулись на процесс Console Window Host (conhost.exe) в диспетчере задач и задаетесь вопросом, что это такое. У нас есть ответ для вас.

СВЯЗАННЫЕ: Что это за процесс и почему он работает на моем ПК?

Эта статья является частью нашей продолжающейся серии, объясняющей различные процессы, обнаруженные в диспетчере задач, такие как svchost.exe , dwm.exe , ctfmon.exe , mDNSResponder.exe , rundll32.exe , Adobe_Updater.exe и многие другие . Не знаете, что это за услуги? Лучше начать читать!

Итак, что такое хост-процесс консольного окна?

Понимание процесса хоста окна консоли требует немного истории. В дни Windows XP командная строка обрабатывалась процессом, называемым системной службой времени выполнения ClientServer (CSRSS). Как следует из названия, CSRSS был сервисом системного уровня. Это создало пару проблем. Во-первых, сбой в CSRSS может привести к выходу из строя всей системы, что выявит не только проблемы с надежностью, но и возможные уязвимости в безопасности. Вторая проблема заключалась в том, что CSRSS не мог быть тематическим, потому что разработчики не хотели рисковать темой кода для запуска в системном процессе. Таким образом, командная строка всегда имела классический вид, а не с использованием новых элементов интерфейса.

Обратите внимание на скриншот Windows XP ниже, что командная строка не имеет такой же стиль, как приложение, такое как Блокнот.

image

СВЯЗАННЫЕ: Что такое диспетчер окон рабочего стола (dwm.exe) и почему он работает?

В Windows Vista появился менеджер окон рабочего стола — сервис, который «рисует» составные виды окон на вашем рабочем столе, а не позволяет каждому отдельному приложению обрабатывать его самостоятельно. Командная строка получила от этого поверхностное оформление (например, стеклянная рамка в других окнах), но за счет возможности перетаскивать файлы, текст и т. Д. В окно командной строки.

Тем не менее, эта тема зашла так далеко. Если вы посмотрите на консоль в Windows Vista, похоже, что она использует ту же тему, что и все остальное, но вы заметите, что полосы прокрутки все еще используют старый стиль. Это связано с тем, что менеджер окон рабочего стола обрабатывает рисование строк заголовка и фрейма, но старомодное окно CSRSS по-прежнему находится внутри.

образ

Войдите в Windows 7 и запустите процесс консоли окна. Как следует из названия, это хост-процесс для окна консоли. Этот процесс находится посередине между CSRSS и командной строкой (cmd.exe), что позволяет Windows исправить обе предыдущие проблемы — элементы интерфейса, такие как полосы прокрутки, рисуются правильно, и вы снова можете перетаскивать их в командную строку. И этот метод все еще используется в Windows 8 и 10, позволяя использовать все новые элементы интерфейса и стили, появившиеся после Windows 7.

Несмотря на то, что диспетчер задач представляет узел окна консоли как отдельную сущность, он все еще тесно связан с CSRSS. Если вы проверите процесс conhost.exe в Process Explorer , вы увидите, что он на самом деле выполняется в процессе csrss.ese.

В конце концов, консольный оконный хост является чем-то вроде оболочки, которая поддерживает возможности запуска службы системного уровня, например CSRSS, и в то же время безопасно и надежно предоставляет возможность интеграции современных элементов интерфейса.

Почему запущено несколько экземпляров процесса?

Вы часто будете видеть несколько экземпляров процесса хоста окна консоли, запущенных в диспетчере задач. Каждый запущенный экземпляр командной строки порождает собственный процесс хоста окна консоли. Кроме того, другие приложения, использующие командную строку, будут порождать свой собственный процесс консоли Windows Host, даже если вы не видите для них активного окна. Хорошим примером этого является приложение Plex Media Server, которое работает в качестве фонового приложения и использует командную строку, чтобы сделать себя доступным для других устройств в вашей сети.