Windows 7 的资源管理器经常停止工作,会是什么原因?

Windows 7 的资源管理器经常停止工作,会是什么原因?

原因非常之多,得看崩溃时的内存转储。往资源管理器注入代码的一大堆,例如显卡驱动、输入法等等,要是栈顶在这些模块里挂掉的还好,但是栈顶的故障模块未必就是有问题的地方,传非法指针到其他模块把对方搞挂掉是很常见的问题。主要诊断和分类方式还是看用什么办法能稳定地重现问题,最难诊断的是那些看起来无法稳定重现的。

一些常见的资源管理器停止工作流程是这样的:

运行了有缺陷的病毒或者恶意软件->资源管理器停止工作 (所以对Windows错误报告最感兴趣的是反恶意软件组,错误报告突然增多通常意味着新的恶意软件开始流行。诊断:装反恶意软件和杀毒软件扫一遍)

装了有缺陷的编码解码器包->打开有视频文件的文件夹->资源管理器停止工作 (诊断:打开别的文件夹没有问题,命令行下一个视频文件到临时目录,然后刷新临时目录会把这个问题传染到临时目录 解决办法:卸载安装的编码解码器换一个)。

装了有缺陷的缩略图提供程序->打开有对应格式文件的文件夹->资源管理器停止工作(诊断:只有打开包含某种扩展名的文件的目录时崩溃,最近安装过有对应文件关联的应用程序。用nirsoft shellexview一个个禁用缩略图扩展直到找到有缺陷的那个卸载,记得把其他的加回来)。

装了有缺陷的外壳菜单扩展->右键点文件->资源管理器停止工作(诊断:只有右键点文件的时候会出问题,用nirsoft shellexview一个个禁用外壳菜单扩展直到找到有缺陷的那个卸载,记得把其他的加回来)。

装了有缺陷的显卡驱动程序->资源管理器随机停止工作(诊断:屏幕可能会闪,看事件日志)。

装了有缺陷的输入法->打字->资源管理器停止工作(诊断:最近安装过输入法, 看事件日志)。

CPU或者操作系统开了数据执行保护->缓冲区溢出缺陷导致尝试执行数据->资源管理器停止工作(很难诊断,因为微软的代码在Vista的时候用了_s版本的库函数重写,问题应该出在注入资源管理器的其他驱动、输入法和扩展甚至全局钩子等代码)。

超频->CPU过热->资源管理器随机停止工作(这个要保存crash dump,有很多个dump之后看栈顶,完全不涉及其他硬件的xor eax, eax这样的指令在栈顶就是CPU问题了)

用了两条不匹配的内存->程序随机停止工作(诊断:最近加过内存,拔掉不匹配的内存条问题消失)

资源管理器自己有缺陷->资源管理器停止工作

等等等等。

因为第三方插件出了问题微软会被指责的原因,微软把一些类型的第三方扩展踢出了资源管理器进程,所以现在又多了一种”COM Surrogate已停止工作“问题……问题的原因还是一样的,不过现在至少一些第三方插件停止工作的时候,不会把资源管理器也一起拖下水而已。