Windows 10 Home / «x64-ПК» / Dell XPS 13 9360
В Мониторе надежности у меня ежедневно происходит много "сбоев приложений". Они возвращаются к 2017-12-04 без изменений (подробности ниже идентичны), когда я считаю, что эта машина была впервые использована. Проблема помечена как сообщенная (кроме случаев возникновения проблем за последние несколько минут).
@ magicandre1981 также предложил по какой-то причине открыть общедоступную проблему в Windows Feedback Hub .
Мой вопрос: как я могу это определить? Что вызывает сбои? Могут ли они быть решены как-то?
Детали проблемы
- Неверный путь к приложению:
C:\Windows\System32\rundll32.exe
- Название проблемного события: APPCRASH
- Название модуля неисправности: Windows.UI.Immersive.dll
- Версия модуля неисправности: 10.0.16299.125
- Смещение исключения: 00000000000ac885
- Код исключения: c0000005
- Версия ОС: 10.0.16299.2.0.0.768.101
- Идентификатор Bucket: ab5106f0b0020ee0d7e0c2d4f71642fb (1720589277589816059)
«Антивирус» установлен (McAfee VirusSafe) и работает без предупреждений, объектов на карантине и журналов, которые я могу найти. sfc /scannow
дает системе чистый счет здоровья.
Запуск проблемы вручную
Кажется возможным вызвать сбой, войдя в систему. Это не то, что вызывало это в прошлом, потому что на машине обычно не было входа и выхода пользователя (или даже включения и выключения машины).
Process Monitor позволяет отслеживать процесс создания и выхода. Запустив его от имени второго пользователя, я вижу процесс сбоя:
- Командная строка:
"C:\WINDOWS\system32\rundll32.exe" -localserver 22d8c27b-47a1-48d1-ad08-7da7abd79617
.
Не совсем понятно, что это за UUID. Опция -localserver
, похоже, не задокументирована. Google находит вопрос , единственный ответ утверждает, что это "Программа анализа производительности профилирования процессов (Программа Windows Performance Counter)". По общему признанию я вижу, что profapi.dll
и powrprof.dll
загружаются в этом процессе.
- Родительский процесс: DllHost.exe ("Суррогат COM").
- Командная строка:
C:\WINDOWS\system32\DllHost.exe /Processid:{133EAC4F-5891-4D04-BADA-D84870380A80}
Этот UUID в командной строке родителя можно найти в реестре. Он связан с именем "Сервер задач создания объекта оболочки". Используя отслеживание реестра в Process Monitor, я вижу, что DllHost
загружает shell32.dll
, расположенный через HKCR\CLSID\{133eac...}\InProcServer32
).
=> Я думаю, что мы можем идентифицировать этот родительский процесс, как shell32.dll / "Shell Create Object Task Server", и что он является частью ОС.
Оба процесса выполняются от имени пользователя NT AUTHORITY\SYSTEM
. Это кажется возможным местом расследования. Что делает привилегированная часть программного обеспечения GUI, которая должна быть запущена в отдельном процессе?
Откат возврата
После запуска procdump -ma -i C:\dumps
я могу записывать аварийные дампы. (procdump -u
чтобы остановить захват). Анализатор от DebugDiag может открыть их и запустить CrashHangAnalysis:
В rundll32.exe_171225_165805.dmp инструкция по сборке в Windows_UI_Immersive!CUserTileValidator::_ SetReadOnlyCapability+1d в C:\Windows\System32\Windows.UI.Immersive.dll от Microsoft Corporation вызвала исключение нарушения прав доступа (0xC0000005) при попытке чтения из памяти 0x00000000 в потоке 0.
Следующие потоки в
rundll32.exe_171225_165805.dmp
обрабатывают входящий вызов RPC через LRPC к конечной точкеOLE54BFB094974A828ACE9FBFE5A353
:(0)
Поток 0 - системный идентификатор 4332
- Точка входа rundll32!wWinMainCRTStartup
- Время создания 25.12.2017 16:58:04
- Время, проведенное в режиме пользователя 0 дней 00:00:00.000
- Время, проведенное в режиме ядра 0 дней 00:00:00.000
ntdll!NtWaitForMultipleObjects+14 ntdll!WerpWaitForCrashReporting+a8 ntdll!RtlReportExceptionHelper+33e ntdll!RtlReportException+9d combase!ServerExceptionFilter+71 combase!AppInvokeExceptionFilterWithMethodAddress+62 combase!`ObjectMethodExceptionHandlingAction<<lambda_76d9e92c799d246a4afbe64a2bf5673d> >'::`1'::filt$0+77 ucrtbase!_C_specific_handler+a0 ntdll!RtlpExecuteHandlerForException+d ntdll!RtlDispatchException+358 ntdll!KiUserExceptionDispatch+2e Windows_UI_Immersive!CUserTileValidator::_SetReadOnlyCapability+1d Windows_UI_Immersive!CUserTileValidator::_GenerateLargeFromDynamicAndReset+23 Windows_UI_Immersive!CUserTileValidator::ValidateUserTile+141 rpcrt4!Invoke+73 rpcrt4!NdrStubCall2+3a5 rpcrt4!NdrStubCall3+e3 combase!CStdStubBuffer_Invoke+62 rpcrt4!CStdStubBuffer_Invoke+3b combase!ObjectMethodExceptionHandlingAction<<lambda_76d9e92c799d246a4afbe64a2bf5673d> >+53 combase!DefaultStubInvoke+2d2 combase!ServerCall::ContextInvoke+492 combase!AppInvoke+99e combase!ComInvokeWithLockAndIPID+55b combase!ComInvoke+210 combase!ThreadDispatch+d4 combase!ThreadWndProc+e8 user32!UserCallWinProcCheckWow+2ad user32!DispatchMessageWorker+19f rundll32!_InvokeLocalServer+1b9 rundll32!wWinMain+168 rundll32!operator delete+2eb kernel32!BaseThreadInitThunk+14 ntdll!RtlUserThreadStart+21
Inbound RPC Call: Protocol Sequence ncalrpc Endpoint OLE54BFB094974A828ACE9FBFE5A353 Source Process ID 1160 Source Thread ID 2624
PID 1160 - это экземпляр svchost.exe для "RPC" и "сопоставителя конечных точек RPC", согласно Process Explorer.