Tenho tido alguns problemas com o explorer.exe interrompido quando crio uma nova pasta.
Se eu usar Analyze Wait Chain no Resource Monitor, ele diz "Um ou mais threads do explorer.exe estão aguardando para concluir a E / S da rede".
Quando olho para o encadeamento problemático no Process Explorer, isso não revela nada de interessante:
ntdll.dll!ZwWaitForMultipleObjects+0xa
KERNELBASE.dll!GetCurrentThread+0x36
kernel32.dll!WaitForMultipleObjectsEx+0xb3
USER32.dll!PeekMessageW+0x1cd
USER32.dll!MsgWaitForMultipleObjectsEx+0x2a
USER32.dll!MsgWaitForMultipleObjects+0x20
SHELL32.dll!SHAppBarMessage+0x41e
SHELL32.dll!DragAcceptFiles+0x2a3c
SHELL32.dll!DragAcceptFiles+0x2a4f
SHELL32.dll!Ordinal211+0x124
SHELL32.dll!SHChangeNotification_Unlock+0x12f4
USER32.dll!GetSystemMetrics+0x2b1
USER32.dll!IsDialogMessageW+0x19b
USER32.dll!IsDialogMessageW+0x1e1
ntdll.dll!KiUserCallbackDispatcher+0x1f
USER32.dll!PeekMessageW+0xba
USER32.dll!PeekMessageW+0x89
SHELL32.dll!SHChangeNotification_Unlock+0xd9f
SHELL32.dll!Ordinal885+0x1407
SHLWAPI.dll!SHRegGetUSValueW+0x306
kernel32.dll!BaseThreadInitThunk+0xd
ntdll.dll!RtlUserThreadStart+0x21
Enquanto eu estava olhando para os tópicos explorer.exe eu notei alguns poucos que falam sobre o ETW (Event Tracing para Windows), então obviamente o explorer.exe usa o rastreio.
Então eu decidi tentar usar o TraceView.exe para tentar escutar os rastros do explorer.exe.
O problema é que o TraceView requer algumas coisas difíceis de serem obtidas ... ou pdbs, ou arquivos CTL, e arquivos .TMF. Eu tentei usar o explorer.pdb que vem com o Windows SDK, mas isso não funcionou. Eu não vejo explorer.exe nos "provedores nomeados". E não tenho idéia de onde localizar os arquivos ctl ou .TMF para o explorer.exe.
Então a pergunta é: Existe uma maneira de ver as mensagens de rastreamento ETW do explorador?
Ou devo apenas não me incomodar e voltar para a velha técnica de incapacitar cada explorador extenion um por um na esperança de um deles. (Prefiro o primeiro como eu gosto de chegar ao fundo das coisas!)