Windows 10 Home / "PC baseado em x64" / Dell XPS 13 9360
No Monitor de Confiabilidade, eu tenho muitas "falhas de aplicativos" todos os dias. Eles voltam até 2017-12-04 sem variação (os detalhes abaixo são idênticos), quando eu acredito que esta máquina foi usada pela primeira vez. O problema está marcado como tendo sido relatado (além de instâncias de problemas nos últimos minutos).
@ magicandre1981 também sugeriu que eu abrisse um problema público no Hub de Comentários do aplicativo Windows por algum motivo.
Minha pergunta é: como posso identificar isso? O que causa as falhas? Eles podem ser resolvidos de alguma forma?
Detalhes do problema
- Falha no caminho do aplicativo:
C:\Windows\System32\rundll32.exe
- Nome do Evento do Problema: APPCRASH
- Nome do módulo de falha: Windows.UI.Immersive.dll
- Versão do módulo de falha: 10.0.16299.125
- Deslocamento de exceção: 00000000000ac885
- Código de exceção: c0000005
- Versão do SO: 10.0.16299.2.0.0.768.101
- ID do compartimento: ab5106f0b0020ee0d7e0c2d4f71642fb (1720589277589816059)
"Antivírus" é instalado (McAfee VirusSafe) e executado sem alertas, sem itens em quarentena, sem logs significativos que eu possa encontrar. sfc /scannow
fornece ao sistema um bom histórico de saúde.
Acionando o problema manualmente
Parece possível acionar a falha fazendo login. Não é isso que está causando isso no passado, porque a máquina geralmente não tem um usuário entrando e saindo (ou até mesmo ligando e desligando a máquina). ).
Process Monitor permite rastrear a criação e saída de processos . Executando-o como um segundo usuário, posso ver o processo de falha:
- Linha de comando:
"C:\WINDOWS\system32\rundll32.exe" -localserver 22d8c27b-47a1-48d1-ad08-7da7abd79617
.
Não está muito claro o que é este UUID. A opção -localserver
não parece estar documentada. O Google encontra uma pergunta , a única resposta é "Perfil do processo" Programa de Análise de Desempenho (Programa Contador de Desempenho do Windows) ". É verdade que posso ver que profapi.dll
e powrprof.dll
estão carregados neste processo.
- Processo pai: DllHost.exe ("COM Surrogate").
Descrito como " não me sinto bem com este código, por isso vou perguntar ao COM para hospedá-lo em outro processo. Dessa forma, se ele falhar, é o processo sacrificial do COM Surrogate que falha em vez de mim ".
- Linha de comando:
C:\WINDOWS\system32\DllHost.exe /Processid:{133EAC4F-5891-4D04-BADA-D84870380A80}
Esse UUID na linha de comando pai pode ser encontrado no registro. Ele está associado ao nome "Shell Create Object Task Server". Usando o rastreamento de registro no Process Monitor, vejo DllHost
carrega shell32.dll
, localizado via HKCR\CLSID\{133eac...}\InProcServer32
).
= > Eu acho que podemos identificar este processo pai, como shell32.dll / "Shell criar objeto Task Server", e que é parte do sistema operacional.
Ambos os processos são executados como o usuário NT AUTHORITY\SYSTEM
. Isso parece um possível local de investigação. Qual é a parte privilegiada do software GUI, que precisa ser executada em um processo separado?
Crash backtrace
Depois de executar procdump -ma -i C:\dumps
, posso capturar os despejos de memória. ( procdump -u
para parar de capturar). O analisador do DebugDiag é capaz de abri-los e executar o CrashHangAnalysis:
In rundll32.exe_171225_165805.dmp the assembly instruction at Windows_UI_Immersive!CUserTileValidator::_SetReadOnlyCapability+1d in C:\Windows\System32\Windows.UI.Immersive.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000000 on thread 0.
The following threads in rundll32.exe_171225_165805.dmp
are processing an inbound RPC call over LRPC to the OLE54BFB094974A828ACE9FBFE5A353
endpoint:
( 0 )
Thread 0 - System ID 4332
- Entry point rundll32!wWinMainCRTStartup
- Create time 25/12/2017 16:58:04
- Time spent in user mode 0 Days 00:00:00.000
- Time spent in kernel mode 0 Days 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
O PID 1160 é uma instância do svchost.exe para "RPC" e "RPC Endpoint Mapper", de acordo com o Process Explorer.