系统内存不能为 Read或written
内存不能为"read"或"written"的这种现象多数由某个新安装的软件和其他软件或是其他硬件有冲突、或是有硬件有故障或是损坏造成, 总体来说软硬件的兼容性造成的可能性较大。关于此问题网上有大量的所谓解决办法,实际有效果的几乎没有. 想要解决这个问题,可不是想像的那么简单的!(最有效的方法还是重装系统=。=)
概述:
1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护
2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护
3、系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序
4、系统本身存在漏洞,导致容易受到网络攻击。
5、病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误……
6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡驱动
7、部分软件本身自身不足的问题
8、电脑硬件过热,也是导致内存不能为 Read 的原因之一。
9、电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因!
内存方面一般是:
1。内存条坏了(二手内存情况居多)、
2。使用了有质量问题的内存,
3。内存插在主板上的金手指部分灰尘太多。
4。使用不同品牌不同容量的内存,从而出现不兼容的情况。
5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
故障原理:
内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。
内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。
作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。
内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。
常见解决方法:
一、系统或其它软件引起的,可用下述方法处理:系统本身有问题,及时安装官方发行的补丁,必要时重装系统。 病毒问题:杀毒 。杀毒软件与其它软件冲突:卸载有问题的软件。显卡、声卡驱动是否正确安装或者是否被恶意覆盖否?重新安装显卡声卡驱动。
1、使用系统自带的sfc命令,修复受到损坏的系统文件恢复到正常状态。
开始→运行→输入cmd,打开“命令提示符”窗口→输入字符串命令sfc/scannow→回车→耐心等待命令程序对每个系统文件搜索扫描→一旦发现系统文件的版本不正确或者系统文件已经损坏→它就能自动弹出提示界面→要求插入Windows系统的安装光盘→从中提取正常的系统文件来替代不正常的系统文件→达到修复系统文件的目的→最后重新启动计算机。
2、安装过的Domino这程序导致有问题,你可以在开始→运行→msconfig→启动项目→关闭Domino启动项→如果关闭不了→可以用卡卡助手之类的系统设置软件把它强行关掉→如果还是不行的→证明你系统中毒→那就重新安装或者恢复系统备份彻底解决。
3、某些系统服务被禁用可能导致类似问题,例如QoS RSVP本地通信控制安装功能被禁用时可能会提示RPC服务器不可用。解决方法:我的电脑右键→管理→服务和应用程序→服务→双击QoS RSVP项目将启动类型改为“手动”或“自动”→关闭窗口→重新启动计算机。如果其它服务被禁用导致的问题也可用这个方法重新启用来解决。
二、浏览器出现内存不能读、写的提示:
1、 首先看这样处理能否解决问题:打开浏览器,点“工具”→INTERNET选项→常规页面→删除cookies→删除文件→钩选删除所有脱机内容→确定→清除历史纪录→确定。工具→INTERNET选项→内容→清除SSL→清除密码→确定→自动完成→清除表单→清除密码→确定→确定→立即关闭所有打开的浏览器窗口→重新启动浏览器。
2、 如果不能解决问题做下面的处理:打开浏览器,点“工具”→“管理加载项”那里禁用所有可疑插件,或者你能准确知道没问题的保留。然后→工具→INTERNET选项→常规页面→删除cookies→删除文件→钩选删除所有脱机内容→确定→设置使用的磁盘空间为:8MB或以下(我自己IE6使用1MB)→确定→清除历史纪录→网页保存在历史记录中的天数:3以下→应用确定(我自己使用的设置是0天)。
3、检查你的浏览器是否被某种(游戏或其它)安装程序恶意附加了某种插件→卸载清理掉它。
4、(此条目针对IE6)运行→regedit→进入注册表, 在→HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 这个位置有一个正常键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 还有一项“默认”保留;将其它的删除。
5、打开CMD窗口输入如下命令:
for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回车
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车
两条分别运行完成后重启机器。
三、如果以上方法无法解决只能使用最后一招:
完全注册dll:打开“运行”输入→cmd→回车
然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。
(下面是要运行的代码):
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
完成后重新启动机器。
四、如果你电脑里面存在NET.Framework这个微软的组件服务而你又不使用它→那么卸载这个服务可能会解决问题:开始→设置→控制面板→添加删除程序→NET.Framework→删除(如果你必须使用就重新启动电脑后再次安装NET.Framework)。
五、关闭这个报告(治标不治本):
1、右击桌面上“我的电脑”→属性→高级→错误报告→错误汇报→勾选“禁用错误汇报”→“但在发生严重错误时通知我”复选框→确定。这样处理对于一些小错误,Windows XP就不会弹出错误提示了。
2、如果不行彻底关闭错误报告服务。开始→运行中输入→services.msc→打开“服务”窗口→找到“Error Reporting Service”→打开“Error Reporting Service的属性”对话框→将“启动类型”改为“已禁用”→确定后重新启动系统。(此项目关闭的注册表方式:开始→运行→输入regedit→确定→找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]中的Auto=0改成Auto=1)
六、重要提示:不要只看这个错误提示的指令代码,而是要看:出这个提示框的上面蓝色条状部分提示的是XXX.EXE那个位置是什么程序,就大体定位引起出错或者冲突的主要原因了,对症下药就能解决。简单有效的处理方法是看错误提示,哪一个软件引起的冲突就卸载那个软件,重新启动机器以后首先关闭杀毒软件,重新运行安装。
===========================================================
以下的方法,都是在系统干净无病毒的前提下进行的,如不能肯定系统有无病毒,请删除以前的杀病毒软件,到天空软件园上下载卡巴2009全功能安全软件升级后杀干净系统中的病毒,再下载360卫士打全系统补丁。
可先试下以下方法,不过依靠此方法解决了此种故障的,少得太可怜了,只能说可以试下(有很少量的朋友这样处理好了的)。
开始-运行-cmd-输入:for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 ,前面的完了后再试下开始-运行-cmd-输入:for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
请仔细回想下出这个问题之前有无安装什么软件,如有请删除了再试,因为软件有bug也可能出现这种情况并且往往无法解决. 如果是你想要执行的程序出现这个故障,可重新安装程序试下,还有请找下如果有更新的版本,就试下新的版本。如是关闭ie或是开ie就出此故障,可试下升级ie的版本。如以前是ie6,可升到ie7试下,以前是ie7,可试下升级到ie8.也可试用下第三方的浏览器,如傲游。(如你是安装了某个软件就马上出这个问题,请一定删除了试下,如实在想用此程序,一定要找新版本来试)
如果还不行,只能重新安装操作系统. 请安装个不同版本的操作系统,这里的不同版本,指的是如以前安装番茄花园的,现在换成雨林木风的,以前用sp2的,现在用sp3的。本人曾用这个方法,成功为解决我网吧的同类故障(本人网吧不能使用xp-sp1系统,只要一用,一定出问题。只要是使用xp-sp2的版本,就没有一点问题。)。
重装系统后,请一个驱动一个驱动地安装,安装一个驱动后进行一段时间的测试,看还出不出些故障。如在安装了某一个驱动之后出此故障,说明这个驱动有问题,请更换不同版本的再进行测试,直到找出一个没有问题的驱动为止。如驱动安装完成,没有出此故障,请安装你使用的应用程序。也是一个程序一个程序地安装,每安装一个程序都要进行测试,如发现安装了某一程序后故障出现,可选择使用此软件的新版本或是干脆不用此软件。这个过程很麻烦,大家耐心点。本人曾用此方法,找出一台日立笔记本,发现只要安装一这个日立笔记本所带的一个声卡控制程序,就会立马报错。最后是不使用这个程序才解决了的。
如果重新安装操作系统后还有问题,请仔细回想下有无更换或是维修或是新加过什么硬件,如有,请取下新加的硬件想办法找以前的硬件或是找个其他人的硬件替换下更换或是维修过的硬件,然后再进行测试.(有很多朋友是换了个硬件就出这种故障了,一换回去什么故障也没有了,或是加了什么硬件,一取下来也没有故障了)
如还不行最后请使用调换法检查硬件,其中内存是最容易出故障的,请最先检查内存。(换内存进行测试)
温馨提示:内容为网友见解,仅供参考