小议“非法操作” 孟琦瑞 2001年 14期 在兼容机的操作过程中“非法操作”是很常见的故障现象。经过长时间的摸索和资料的搜集、整理,明白了它的成因及找到了不少对该故障的解决方法。不敢独享,特奉献给广大读者,让大家摆脱“非法操作”的困扰。    在Windows 9x系列中,是用保护模式来管理内存的。所谓保护模式,就是由Windows 9x给每个程序分配系统资源和访问权限。这样一来,将会减少一些不必要的内存占用。但是,当某个应用程序试图侵占其他应用程序的系统资源,或是越权使用的时候,就会出现“非法操作”。“非法操作”造成的原因很复杂,不仅可以由软件问题引起,也可由硬件引起,还有病毒也来作怪。下面,我将分软件及硬件两方面的原因给予介绍。为了使本文具有实用性及可操作性,每个原因都给出了典型例子和它的解决办法。   #1 软件方面   #2 1.由软件自身的不完善(BUG)引起    典型例子:Photoshop图形软件在运行时产生的“非法操作”。    解决:将软件升级为高版本或升级补丁程序。如安装Windows 98的sp1就非常必要了。运行期间,应减少其他程序对内存的占用,可关闭病毒防火墙、减少剪贴板中的不必要内容。也可根据自己的情况,升级一下显卡、声卡、或是显示器的驱动程序或将它们更换成新件。   #2 2.由病毒感染、病毒的残留“僵尸”、冰河木马引起    典型例子:.DLL文件失效。    解决:(1)在有些病毒的发作过程中,往往会伴随着一些文件的改动。一旦某些重要文件(如.sys .dll .vdx...)被改动过以后,机器会很难正常工作。方法如下:先用干净的引导盘启动微机,后用最新的杀毒软件清除病毒,再用“系统文件检查器”或者“Ext.exe”进行文件的恢复。    (2)终止内存中正在运行的冰河木马,然后进入注册表,删除“KEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current-Version\Run”和“RunServices”的键值;将“HKEY_CLASSES_ROOT\xtfileshellopenco-mmand”的键值改成“C:\Windwos\NOTE-PAD.EXE %1”;重启到DOS,再到硬盘C:\Windows\System中,将Kernel32.exe和Sysexplr.exe删除。   #2 3.由系统文件的损坏或丢失引起    典型例子:Rundll32程序执行无效,即将关闭。    解决:方法一:当按下“详细资料”按钮时,若显示:“Rundll32 caused a general protection fault in module Mmsystem.dll....”信息,原因很可能就是你的 System.ini 文件里,在[boot]这个区段中,少了:drivers =mmsystem.dll 这一行造成的。你自己补上去就可以解决了。为什么会有这个错误的发生呢?大部分都是由于在使用控制面板“添加新硬件”时,使用不正确而造成的。例如,需要你提供驱动程序而你又不能提供正确的驱动程序造成的。使用记事本,打开位于 C:\Windows 下的System.ini 文件。找到“[boot]”这个区段。补上一行“drivers=mmsystem.dll”。补上后,保存,然后重新开机。    如果你不能确定该故障是由什么原因造成的,可以用“系统文件检查器”,在设置之中,选择“检查删除的文件” 、“检查修改过的文件”,还可以添加新的文件类型来进行检查、恢复。   #2 4.由软件之间的不兼容引起    典型例子:Windows 98下的KVW3000所引起的“非法操作”。    解决:在前面,我曾讲过Windows 9x“内存管理”的概念,病毒软件运行过程中将不遵循这种方式,最终造成“非法操作”的出现。具体方法:对扫毒软件的升级,或者不用病毒防护。还可以不加载 Windows 9x的内存管理程序Emm386.exe。   #2 5.由缓存设置不合理引起    典型例子:极少出现的,没有规律可循。    解决:遵循缓存的设置规则:    (1)Win386.swp是Windows的“虚拟内存交换文件”,简单地说,就是拿一部分硬盘空间当作内存使用,先把一些内存中闲置太久的程序,放到硬盘上,等CPU要用的时候,再从硬盘的win386.swp里读出来。它的大小按物理内存的2倍来设置。(2)在Windows 98下,使用虚拟设备磁盘缓存Vcache。在“系统配置实用程序”中,找到sysytem.ini,再找到“[vcache]”小节,添入: MinFileCache=16384 MaxFileCache=16384 ChunkSize=512。上面的数值是以64MB为例采取的,一般原则是:物理内存×25%×512=VCache。(3)CD-ROMCache优化,注册表中“HKEY_LOCAL_MACHINE\Systm\CurrentControlSet\control\FileSystem\CDFS”,右边能看到“CacheSize”和“Prefetch”。如果你现在是使用Windows 98推荐的4倍速设置的话,它们的值应该是“0000026b”和“000000e4”,我们需要分开来修改这两个数值,我这里省略了计算方法,大家可以参考以下数据值,并根据自己的需要来修改吧,修改完后需要重新启动。   #2 6.由系统资源匮乏引起    典型例子:打印或保存时引起的“非法操作”。    解决:升级内存,加大缓存。移除一些不必要的软件,如:桌面主题、屏幕保护、计划任务、声音和输入法指示器、声卡的DOS驱动程序、防火墙、查毒软件、背景、Office 2000的竖式工具栏等等。最好是在启动微机后,先运行比较大的软件。还应加上一个良好的内存管理专家软件。   #1 硬件方面   #2 1.由系统及其系统部件过热引起    典型例子:SDRAM的过热故障。    解决:选择好一点的散热片和散热风扇,风扇转速要高,散热片的散热面积要大,散热片材质要利于散热,与被散热部件的接触面积要大。内存的散热:现在市场上已经出现了内存的散热片,是一种长方形带圆孔的东西,但是散热体的体积过大,会影响到第二条SDRAM的插位,再就是应当注意机箱通风和不要超频。   #2 2.由硬件质量不好引起    典型例子:SDRAM的质量不稳定产生的“非法操作”。    解决:首先将BIOS中的内存参数设置得保守一些,如:SDRAM CAS LATENCY的值,设为CL=3。再就是不要超频,实在不行,只有更换内存了。   #2 3.由硬件I/O冲突兼容性差引起    典型例子:网卡的冲突。    解决:从设备管理中,删除带“?”或带“!”的设备,让系统重新识别一下硬件后,再安装驱动程序。I/O冲突的解决:查看“设备管理器/属性”中的“ 中断请求”,若有冲突,将它进行调整即可。再就是升级一下BIOS程序,也可以解决一些问题。   #2 4.由硬件超频引起的“非法操作”    典型例子:CPU和SDRAM超频故障。    解决:首先要保证自己的硬件有良好的可超性能,再就是要将散热的危害性降到最小程度,CPU表面温度控制在50℃以内,SDRAM最好在25℃左右。   #2 5.由硬件损坏引起    典型例子:包括一些接口的损坏,或者是小的电子元件被击穿。    解决:要有专门的仪器和方法来测试,一般很少出现。这里就不多讲了。    结论:上面讲到的,只不过是产生非法操作及解决的一些知识,它只是许多微机故障中的一个方面。下面,谈一谈为减少非法操作所应当知道的一些维护知识:    (1)对机房环境的维护:防尘避免高温、高湿度。    (2)看清故障,不要盲目处理,避免引发其他故障。    (3)做好接地,避免静电的危害。    (4)积极地吸取别人的好的建议,以增加对微机的掌握程度。    (5)定期地进行除尘、除湿的维护。    (6)注意软件版本的不断升级,以减少BUG的危害,增强功能。    (7)意木马冰河的防范、杀毒软件的更新。    (8)保持机箱的稳定性、避免不必要的振动、硬物的冲击。    (9)保持硬盘的数据整洁,定期运行管理软件,如:磁盘扫描、系统文件检查器、磁盘碎片整理、备份程序……