Какой процесс обрабатывает время жизни приложения UWP? - PullRequest
0 голосов
/ 31 мая 2018

Итак, я из любопытства изучил некоторые детали UWP-приложений более низкого уровня и столкнулся с некоторыми трудностями.Я понимаю, что практически ничего из этого не является документированным поведением и, следовательно, от него не следует зависеть, но мне нравится изучать все, что я могу о платформе.

Так же, как ApplicationFrameHost.exe владеет родительским окном всех UWP CoreWindow экземпляров (как можно увидеть в Spy ++), я подозреваю, что один или несколько процессов участвуют в инициализации и управлении временем жизни приложения UWP (так же, как services.exe управляет временем службы).Дело в том, что я потратил немного времени на просмотр запущенных процессов для какого-либо специализированного сервиса или процесса, которые могли бы быть реально вовлечены в это, и потерпел неудачу.

Так что есть одна из 3 возможностей, которые я могу предложитьс:

  1. Управление временем жизни процесса выполняется в ядре (что я не могу проверить, из-за отсутствия второй машины, к которой подключен отладчик ядра)
  2. Управление временем жизни процесса выполняется внутри процесса (дизассемблирование Windows.ApplicationModel.Core.dll указывает, что это маловероятно, и возобновление процесса, очевидно, не может происходить в процессе)
  3. Управление временем жизни процесса выполняется в csrss.exe (также маловероятно, поскольку на самом деле это не таксправиться с этим даже для Win32 API, и этот вопрос касается WinRT и UWP)

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

Так, вопрос: какой системный процесс Windows 10 фактически отвечает за управление жизненным циклом приложения UWP (кто приостанавливает, завершает, возобновляет мой процесс)?

...