Информация об изменениях

Сообщение Re[2]: Так называемый "тип" процесса в Task Manager (Win8+) от 25.04.2017 19:23

Изменено 25.04.2017 19:32 463C21E2

Re[2]: Так называемый "тип" процесса в Task Manager (Win8+)
Здравствуйте, Marty, Вы писали:

CE>>Я про тот тип, который Task Manager показывает как "App", "Background" или "Windows".


CE>>Как Task Manager отличает App от Background более-менее понятно: по наличию видимого top-level окна у процесса. А вот как он отличает Background от Windows? Этот "тип" еще где-то, кроме как в Task Manager, встречается — в других гуях или API?


M>Не понял, что ты имеешь в виду. Скрин можно?


Можно. Но сначала пояснения. На скрине ниже таблица процессов со вкладки 'Processes'. (Есть еще одна, на вкладке 'Details', которая очень похожа на то, что отображается в Windows 7). Таблицу можно настроить: в списке доступных колонок (ПКМ на заголовках таблицы -> контекстное меню) выбрать 'Type', тогда у каждого процесса появится этот "тип", он будет иметь одно из 3 значений: "App", "Background" или "Windows". По умолчанию же эта колонка ('Type') не отображается, а вместо этого айтемы таблицы (то есть, процессы) сгруппированы по типу. (Включается и отключается группировка через 'View' ->'Group by type'). Похожую логику можно увидеть во многих таблицах многих приложений, от Explorer до Outlook.

Поэтому я и спросил, что это за "тип", а не как винда рассовывает процессы по группам. Если этот "тип" встречается еще где-то, кроме как в Task Manager — в других гуях или API — это само по себе интересно.

Теперь скрин. На нем заголовки групп отмечены стрелками:



CE>>На самом деле, интересует, как это svchost устроился в привилегированном положении — иметь динамическое имя. Но я разбираюсь по порядку.


M>Что значит "динамическое имя"? svchost — это хост-процесс для кучи сервисов


Вот еще один скрин:



Не смотрите на красную обводку, а посмотрите на то, что один и тот же процесс (svchost.exe) представлен 3 именами:
  • Service Host: DCOM Server Process Launcher
  • Service Host: Local Service
  • Service Host: Local Service (Network Restricted)

Выглядит как "Service Host: %s".

Другие процессы, если они хостят сервисы, отображаются так: в качестве имени — значение 'File description' из версионного ресурса exe-файла, если развернуть узел — внутри будет список сервисов, представленных именами. (Количество подузлов отображается в скобках). Например, на скриншоте есть 'Local Security Authority Process', это lsass.exe, у которого соответствующая строка прописана в 'File description'. А вот у svchost.exe в 'File description' прописано 'Host Process for Windows Services' (и на вкладке 'Details' он под этим именем и фигурирует), однако на главной вкладке Task Manager умеет давать ему контекстно-зависимое имя. Это и интересно — тупо захардкожено "для своих", или свои системные утилиты можно научить отображаться так же, в зависимости от контекста?
Re[2]: Так называемый "тип" процесса в Task Manager (Win8+)
Здравствуйте, Marty, Вы писали:

CE>>Я про тот тип, который Task Manager показывает как "App", "Background" или "Windows".


CE>>Как Task Manager отличает App от Background более-менее понятно: по наличию видимого top-level окна у процесса. А вот как он отличает Background от Windows? Этот "тип" еще где-то, кроме как в Task Manager, встречается — в других гуях или API?


M>Не понял, что ты имеешь в виду. Скрин можно?


Можно. Но сначала пояснения. На скрине ниже таблица процессов со вкладки 'Processes'. (Есть еще одна, на вкладке 'Details', которая очень похожа на то, что отображается в Windows 7). Таблицу можно настроить: в списке доступных колонок (ПКМ на заголовках таблицы -> контекстное меню) выбрать 'Type', тогда у каждого процесса появится этот "тип", он будет иметь одно из 3 значений: "App", "Background" или "Windows". По умолчанию же эта колонка ('Type') не отображается, а вместо этого айтемы таблицы (то есть, процессы) сгруппированы по типу. (Включается и отключается группировка через 'View' ->'Group by type'). Похожую логику можно увидеть во многих таблицах многих приложений, от Explorer до Outlook.

Поэтому я и спросил, что это за "тип", а не как винда рассовывает процессы по группам. Если этот "тип" встречается еще где-то, кроме как в Task Manager — в других гуях или API — это само по себе интересно.

Теперь скрин. На нем заголовки групп отмечены стрелками:



CE>>На самом деле, интересует, как это svchost устроился в привилегированном положении — иметь динамическое имя. Но я разбираюсь по порядку.


M>Что значит "динамическое имя"? svchost — это хост-процесс для кучи сервисов


Вот еще один скрин:



Не смотрите на красную обводку, а посмотрите на то, что один и тот же процесс (svchost.exe) представлен 3 именами:
  • Service Host: DCOM Server Process Launcher
  • Service Host: Local Service
  • Service Host: Local Service (Network Restricted)

Выглядит как "Service Host: %s".

Другие процессы, если они хостят сервисы, отображаются так: в качестве имени — значение 'File description' из версионного ресурса exe-файла, если развернуть узел — внутри будет список сервисов, представленных именами. (Количество подузлов отображается в скобках). Например, на скриншоте есть 'Local Security Authority Process', это lsass.exe, у которого соответствующая строка ('Local Security Authority Process') прописана в 'File description'. А вот у svchost.exe в 'File description' прописано 'Host Process for Windows Services' (и на вкладке 'Details' он под этим именем и фигурирует), однако на главной вкладке Task Manager умеет давать ему контекстно-зависимое имя. Это и интересно — тупо захардкожено "для своих", или свои системные утилиты можно научить отображаться так же, в зависимости от контекста?