当我创build一个新的文件夹时,我一直有一些explorer.exe挂起的问题。
如果我在资源监视器中使用分析等待链,它会显示“explorer.exe的一个或多个线程正在等待完成networkingI / O”。
当我在Process Explorer中查看有问题的线程时,没有发现任何有趣的内容:
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
当我正在查看explorer.exe线程时,我注意到有一些人谈论ETW(Windows事件跟踪),所以显然explorer.exe使用跟踪。
所以我决定尝试使用TraceView.exe来尝试侦听explorer.exe跟踪。
问题是TraceView需要一些难以理解的东西… pdbs或CTL文件和.TMF文件。 我尝试使用Windows SDK附带的explorer.pdb,但没有工作。 我没有在“命名提供者”中看到explorer.exe。 而我不知道在哪里findexplorer.exe的ctl或.TMF文件。
所以问题是:有没有办法从资源pipe理器查看ETW跟踪消息?
或者,我只是不打扰,回到历史悠久的技术,每个探险家的延伸一个接一个,希望其中的一个。 (喜欢前者,因为我喜欢深究的东西!!)
我不知道你是否看过他们,但是微软的Mark Russinovich(以前是SysInternals最初编写Process Explorer的)曾在他的博客上写过关于使用Sysinternals工具诊断Windows问题的常规文章。
这一个展示了他的过程,他试图追踪间歇性的资源pipe理器挂起(几乎肯定是不一样的,但显示他使用的过程) http://blogs.technet.com/markrussinovich/archive/2005/ 8月28日/的情况下的最间歇和-烦人-探险-hangs.aspx
他使用其他技术(包括从MS服务器获取符号)来诊断慢速Windows性能: http : //blogs.technet.com/markrussinovich/archive/2008/09/24/3126858.aspx
我要做的第一件事就是在驱动器上运行checkdisk。 首先排除最简单的原因。
从hibernate状态唤醒后,这种情况在Windows 7中一直如此。 “新build文件夹”和“重命名文件夹”都将explorer.exe带入长时间的挂起。 最终会回来,但会杀死你所有的动力。 有点沮丧,看到这个全新的W7笔记本电脑。
我的解决方法:启动任务pipe理器杀死explorer.exe。 任务栏将消失。 文件 – >新build任务 – > explorer.exe。 任务栏应该重新出现。 closures任务pipe理器
问题立即清除。 但今晚会回来的
Scott提出的解决scheme非常完美。
我在戴尔Inspiron 1564上使用Windows 7(64位)。
似乎是一个固有的bug 7。