Итак, я из любопытства изучил некоторые детали UWP-приложений более низкого уровня и столкнулся с некоторыми трудностями.Я понимаю, что практически ничего из этого не является документированным поведением и, следовательно, от него не следует зависеть, но мне нравится изучать все, что я могу о платформе.
Так же, как ApplicationFrameHost.exe
владеет родительским окном всех UWP CoreWindow
экземпляров (как можно увидеть в Spy ++), я подозреваю, что один или несколько процессов участвуют в инициализации и управлении временем жизни приложения UWP (так же, как services.exe управляет временем службы).Дело в том, что я потратил немного времени на просмотр запущенных процессов для какого-либо специализированного сервиса или процесса, которые могли бы быть реально вовлечены в это, и потерпел неудачу.
Так что есть одна из 3 возможностей, которые я могу предложитьс:
- Управление временем жизни процесса выполняется в ядре (что я не могу проверить, из-за отсутствия второй машины, к которой подключен отладчик ядра)
- Управление временем жизни процесса выполняется внутри процесса (дизассемблирование Windows.ApplicationModel.Core.dll указывает, что это маловероятно, и возобновление процесса, очевидно, не может происходить в процессе)
- Управление временем жизни процесса выполняется в
csrss.exe
(также маловероятно, поскольку на самом деле это не таксправиться с этим даже для Win32 API, и этот вопрос касается WinRT и UWP)
Учитывая, насколько маловероятным является любой из этих трех сценариев, а также трудно определить, какой из них правильный вмомент, есть действительно хороший шанс, что я смотрю в неправильных местах.
Так, вопрос: какой системный процесс Windows 10 фактически отвечает за управление жизненным циклом приложения UWP (кто приостанавливает, завершает, возобновляет мой процесс)?