积极答复者
spoolsv.exe 错误 该内存不能为 "written"

问题
-
联想PC,XP-sp3系统,OEM home版,2月13日安装hp 2055n打印机驱动,当时正常,第二天开机后报错,弹出应用程序: spoolsv.exe - 应用程序错误: "0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。Print Spooler服务终止运行。
手动启动该服务后,只要一点击“设备和打印机”就报上述错误信息,服务终止运行。“设备和打印机”窗口里不能看到已安装的打印机。系统日志摘要如下:
日志名称: C:\Users\fanyongfeng\Desktop\sys_log.evt
来源: Application Popup
日期: 2012/2/21 9:10:21
事件 ID: 26
任务类别: 无
级别: 信息
关键字: 经典
用户: 暂缺
计算机: 05JIANGQINGY
描述:
弹出应用程序: spoolsv.exe - 应用程序错误: "0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Popup" />
<EventID Qualifiers="16384">26</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2012-02-21T01:10:21.000000000Z" />
<EventRecordID>36255</EventRecordID>
<Channel>C:\Users\fanyongfeng\Desktop\sys_log.evt</Channel>
<Computer>05JIANGQINGY</Computer>
<Security />
</System>
<EventData>
<Data>spoolsv.exe - 应用程序错误</Data>
<Data>"0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。要终止程序,请单击“确定”。
要调试程序,请单击“取消”。</Data>
</EventData>
</Event>通过百度搜索网上的解决方案后,已尝试的操作有:
1.
打开电脑菜单里的“控制面板”、“性能和维护”、“系统”
选择“高级”,再打开“性能”选项中的“设置”,选择“数据执行保护”
选取第二个选项,并点击下面的小方框。再点击“应用”、“确定”以后重新启动电脑。
没有解决。
----------------------------------------------------------
2.
将 %SystemRoot%/System32/spool/PRINTERS 目录下的所有文件删除。
打开“服务”窗口单击 Print Spooler,然后单击启动。
没有解决。
----------------------------------------------------------
3.
停用print spool服务。
从另一个正常的XP系统中拷贝 spoolsv.exe 文件替换原系统中的文件。文件位置是:%systemroot%\system32
重新启动服务,从“打印机和传真”中删除打印机。
重新安装打印机。----------------------------------------------------------
4.
网上流传一种简单的解决方法:
1、在开始-运行里输入CMD确定,在命令行窗口下输入以下内容后按回车
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
完了后,如此法不成功再试这个,再输入以下内容并回车
for %1 in (%windir%\system32\*.dll) do regsvr32 /s %1
这个要好久,耐心等候,但也可能需要重启后整个效果才会出来。实际操作中,在注册dll的时候有弹出3个错误对话框,大概意思是说regsvr32.exe 引起VC++2008 runtime错误。
我下载重新安装了VC++ 2008 sp1,再重新做一遍,还是报VC++2008 runtime错误。
重启操作系统后问题仍然没有解决。
请问还有其它办法解决吗?
- 已编辑 广州魔法师 2012年2月22日 3:01
答案
-
手动删除打印机:
1.关停并禁用Print Spool服务,重启计算机
2.此时应该能轻易删除
C:\Windows\System32\spool\drivers 下的驱动
C:\Windows\System32\spool\PRINTERS下的打印队列
C:\Windows\System32\spool\tools下的一些乱七八糟文件。
删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\对应版本Windows\Drivers\打印机 。
3.删干净了,重启Print Spool服务,设置为自动启动。
如果有多台打印机或者虚拟打印机之类的,第二部的时候要慎重。
- 已编辑 GeekLian 2012年2月23日 12:45
- 已建议为答案 Alexis ZhangMVP, Moderator 2012年3月8日 21:36
- 已标记为答案 广州魔法师 2012年3月25日 9:01
-
在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 中除了 Environments 外,再检查一下 Monitors 与 Printers(如果有的话)。如果其中有以惠普打印机驱动命名的注册表项,并且通过字符串值 Driver 定义了特殊的 .DLL 文件,请先备份后删除。另外对于之前用安装程序安装的驱动,请检查 HKEY_LOCAL_MACHINE\SOFTWARE 中是否有驱动残留的注册表项;对于用手动配置 .INF 文件方式安装的驱动,可以检查一下文件中设计的所有驱动文件,在系统中是否有残留??--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"按上面的帖子手工删除了打印机驱动文件,还是不行
- 已建议为答案 Alexis ZhangMVP, Moderator 2012年3月8日 21:36
- 已标记为答案 广州魔法师 2012年3月25日 9:01
全部回复
-
卸载已安装的打印机驱动,然后测试 Print Spooler 服务能否手动关闭及重新启动。如果卸载打印机驱动后 Print Spooler 服务没有任何问题,就不是系统自身的问题,百毒上那些方法都不用尝试。估计只是单纯的打印机驱动受损。如果卸载驱动后 Print Spooler 服务一切正常,请重新安装打印机驱动。假如还是当时安装正常,过几天又不行,则需要进一步排查打印机驱动受损的原因。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"联想PC,XP-sp3系统,OEM home版,2月13日安装hp 2055n打印机驱动,当时正常,第二天开机后报错,弹出应用程序: spoolsv.exe - 应用程序错误:"0x00000000" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。
-
卸载已安装的打印机驱动,然后测试 Print Spooler 服务能否手动关闭及重新启动。如果卸载打印机驱动后 Print Spooler 服务没有任何问题,就不是系统自身的问题,百毒上那些方法都不用尝试。估计只是单纯的打印机驱动受损。如果卸载驱动后 Print Spooler 服务一切正常,请重新安装打印机驱动。假如还是当时安装正常,过几天又不行,则需要进一步排查打印机驱动受损的原因。--Alexis Zhang
- 已编辑 广州魔法师 2012年2月23日 5:30
-
手动删除打印机:
1.关停并禁用Print Spool服务,重启计算机
2.此时应该能轻易删除
C:\Windows\System32\spool\drivers 下的驱动
C:\Windows\System32\spool\PRINTERS下的打印队列
C:\Windows\System32\spool\tools下的一些乱七八糟文件。
删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\对应版本Windows\Drivers\打印机 。
3.删干净了,重启Print Spool服务,设置为自动启动。
如果有多台打印机或者虚拟打印机之类的,第二部的时候要慎重。
- 已编辑 GeekLian 2012年2月23日 12:45
- 已建议为答案 Alexis ZhangMVP, Moderator 2012年3月8日 21:36
- 已标记为答案 广州魔法师 2012年3月25日 9:01
-
如果打印机驱动具有自己的安装程序,应该可以通过控制面板的“添加删除程序”卸载。除非这个驱动没有安装程序,是自己指定 .INF 手动安装的。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"假脱机打印服务手工启动后,只要一点击“设备和打印机”就报上述错误信息,服务终止运行。“设备和?蛴』贝翱诶锊荒芸吹揭寻沧暗拇蛴』薹ㄐ对卮蛴』惺裁窗旆ù幼⒉岜砝锴謇泶蛴』穑?
-
手动删除打印机:
1.关停并禁用Print Spool服务,重启计算机
2.此时应该能轻易删除
C:\Windows\System32\spool\drivers 下的驱动
C:\Windows\System32\spool\PRINTERS下的打印队列
C:\Windows\System32\spool\tools下的一些乱七八糟文件。
删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\对应版本Windows\Drivers\打印机 。
3.删干净了,重启Print Spool服务,设置为自动启动。
如果有多台打印机或者虚拟打印机之类的,第二部的时候要慎重。
按照步骤操作了一遍,还是报同样错误 -
如果卸载驱动后 SPOOLSV.EXE 运行还是有问题,请执行 SFC /SCANNOW 检测一下系统文件的完整性,并通过安全防护软件查杀一下恶意程序。然后可以尝试在“服务”中手动关闭并重新启动 Print Spooler 服务。假如手动试图启动服务时也报错,请检查一下事件查看器对此有无记录,将错误日志写上来看看。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"几台惠普的打印机是自己指定 .INF 手动安装的,1台epson的打印机驱动是从“添加删除程序”卸载的。
-
请对硬盘执行一下全盘搜索,看看除了 Windows\system32 外可以找到几个 SPOOLSV.EXE?分别位于什么位置?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"执行 SFC /SCANNOW 这个步骤之前已经做过了,也没有效果,打开"设备和打印机时"Print Spooler 服务的异常终止错误信息还是同上面所述一?#ㄆ婀值氖牵净淖飨低趁髅魇橇隤C自带的xp-sp3 home版,
-
不客气。如果除了正常的 Windows\system32\SPOOLSV.EXE 以及 DLLCache 中的缓存外可以找到其它位置的 SPOOLSV.EXE,可能是恶意程序仿冒的,请务必确认运行出错的是系统文件还是仿冒文件。如果除正常的系统文件外找不到其它 SPOOLSV.EXE,并且已经通过 SFC 确认文件没有损坏,那么应该还是打印机驱动卸载不干净,驱动干扰了服务的正常运行。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"今天比较忙,刚刚才有空看回帖,明天我去公司查一下先。谢谢您的热心关注。
-
在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 中除了 Environments 外,再检查一下 Monitors 与 Printers(如果有的话)。如果其中有以惠普打印机驱动命名的注册表项,并且通过字符串值 Driver 定义了特殊的 .DLL 文件,请先备份后删除。另外对于之前用安装程序安装的驱动,请检查 HKEY_LOCAL_MACHINE\SOFTWARE 中是否有驱动残留的注册表项;对于用手动配置 .INF 文件方式安装的驱动,可以检查一下文件中设计的所有驱动文件,在系统中是否有残留??--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "广州魔法师"按上面的帖子手工删除了打印机驱动文件,还是不行
- 已建议为答案 Alexis ZhangMVP, Moderator 2012年3月8日 21:36
- 已标记为答案 广州魔法师 2012年3月25日 9:01