一则Windows蓝屏故障的解决

Author: 阎超凡 Date: 1999年 第32期 23版

    朋友在使用一种Windows集成软件系统时,经常被一种莫名其妙的蓝屏故障所困扰。故障现象是每次运行该软件约一个小时后,就会突然出现蓝屏故障,屏幕提示:“A fatal exception OE has occurred at ***:********in VCOND(**)+********The current application will be terminated”,非常有规律。每当此时,他总是热启动重新开机,但是要不了多久,故障现象依然,使他非常烦恼。为此,找笔者去帮助解决。
    他的机器配置是:Pentium Ⅱ CPU、64M内存、5.4G硬盘。从现象看是系统资源不足造成的问题,但对这样的机器来说,运行目前的程序应该不会发生此类问题。经仔细检查,系统及软件启动时也并未加载过多的程序到内存中,为什么会在使用一定时间后才出现此类故障呢?
    在排除了病毒和程序本身设计上的错误外,百思不得其解,最后把目光集中在系统进程上。在程序启动后,按下“Ctrl+Alt+Del”组合键查看“任务列表窗口”,记下当前已经加载的程序数。然后让程序继续执行,在间即将可能出现蓝屏现象前,再次按“Ctrl+Alt+Del”查看“任务列表窗口”,记下此时总共加载的程序数,并与原有的比较,问题已经一目了然。
    经比较发现,系统此时在内存中共加载了上百个“Winoldap”进程,这是一个与DOS应用程序兼容性有关的问题。
    原来,该软件系统在运行过程中,不断地从接口上读取外部信息,然而该信息却是以压缩包的形式传送的,系统每读进一个压缩包,就会自动调用附带的PKUNZIP程序去解压缩,而PKUNZIP是DOS环境下的应用程序,完成任务后不会自动退出,于是此程序不断地驻留于内存中,一定时间后就会导致内存资源严重耗尽,最终出现蓝屏现象。
    找出了问题的根本,就比较容易解决了。具体方法是:双击“我的电脑”或“资源管理器”,找到PKUNZIP.EXE程序,右击选中“属性”,单击“程序”标签,选中“退出时关闭”前的复选框,然后单击“高级……”按钮,选中“禁止MS-DOS程序检测Windows”前的复选框,最后逐级确认退出即可。
    该系统经如此处理后,运行几个月来再也没有出现此故障。