常规保护错误和疑难解答提示的原因

文章翻译 文章翻译
文章编号: 82710 - 查看本文应用于的产品
如果本文未介绍您收到该错误消息,查看下面的 Microsoft 知识库文章,以查看更多介绍错误消息的文章:
315854Windows 98 和 Windows Me 错误消息资源中心
展开全部 | 关闭全部

本文内容

概要

当程序执行某些内容,可以检测英特尔 80286,80386 和 80486 cpu 错误。最常见的问题是堆栈错误、 无效的指令、 除错误 (被零除) 和一般保护错误。这通常指示在程序中的使用了非标准代码。

更多信息

可能的故障类型

在基于 Windows 的程序、 在 Windows 本身,或 Windows 设备驱动程序 (例如对于视频适配器驱动程序) 中,可能发生以下错误。

堆栈故障 (中断 12)

堆栈故障的原因包括:
  • 试图访问超出限制的堆栈段内存的指令 (POP,PUSH、 回车、 LEAVE,或堆栈相对访问: MOV AX、 [BP + 6])。
  • 正在加载 SS 与标记选择器不存在,但否则有效 (这应该不会发生在 Windows 下)。
堆栈故障始终是当前程序在 Windows 中的致命的。

无效的指令 (中断 6)

CPU 检测大多数的无效指令,并会产生中断。

这始终是程序致命的。这不应发生,通常由运行数据,而不是代码引起的。

除错误 (中断 0)

当目标注册不能容纳除法运算的结果时,会出现这种情况。这可能是由于试图除以零或除溢出所致。

一般保护错误 (中断 13)

不会导致另一个异常的所有保护冲突都导致一般保护异常。这包括,但不限于:
  • 使用时间、 DS、 ES、 完成-开始,或 GS 段时,超过了段限制。这是一个非常常见的问题,在 $ 程序中,它通常因为 miscalculating 在分配中必需的内存量。
  • 将执行转移到一段不是可执行文件 (例如跳转到包含垃圾回收的位置)。
  • 写入一个只读或代码段。
  • 加载到段寄存器的值不正确。
  • 使用空指针。值为 0 定义为一个空指针。在受保护模式中都会使用包含 0 的一段寄存器无效。

诊断常规保护故障

第一次,缩小错误的来源。因为常规保护错误可能由软件或硬件造成,第一步是在安全模式下重新启动您的计算机。在安全模式下重新启动,可以测试您的计算机中只使用基本组件的 Windows 加载中的状态。如果您在安全模式下重新启动计算机,并且不会发生该错误消息原点是更有可能是驱动程序。如果您在安全模式下重新启动,然后测试您的计算机,并且不会发生该错误消息,问题更有可能是硬件,或损坏的 Windows 核心文件。
  1. Windows 95 的重新启动计算机,您会看到正在启动 Windows 95 消息,然后选择 安全模式 时按 f8 键。

    Windows 98 重新启动您的计算机、 按下并按住 CTRL 键,直到看到 Windows 98 启动 菜单,然后选择 安全模式
  2. 在安全模式下测试您的计算机。如果不会发生该错误,请为您的操作系统使用下面适当的步骤。如果错误不会发生,可能有您的 Windows 安装有问题,或者您可能遇到硬件错误的症状。请参阅本文的"测试硬件"一节。

    Windows 98

    您的计算机以安全模式重新启动后,使用系统配置实用程序工具 (Msconfig.exe) 以最大限度地减少可能会引起问题的冲突:

    1. 单击 开始、 指向 程序、 指向 附件,指向 系统工具,然后单击 系统信息
    2. 工具 菜单上单击 $ 系统配置实用程序
    3. 常规 选项卡上单击 选择性启动,然后单击以清除以下复选框:
      • 处理冲突文件
      • 处理 Autoexec.bat 文件
      • 处理 Winstart.bat 文件 (如果可用)
      • 处理 System.ini 文件
      • 处理 Win.ini 文件
      • 装载启动组项目
    4. 单击 确定,然后重新启动您的计算机通常当系统提示您。在重新启动并将测试您的计算机,如果您仍未收到错误消息之后继续执行下一节中的步骤。
    5. 运行系统配置实用程序工具,单击以在 选择性启动 框中选择一个项目,请单击 确定,然后重新启动计算机并测试。
    6. 继续此过程,直到选择了所有在 选择性启动 框中的项目。如果您选择的项目,并且您的问题再次出现单击在 $ 选择性启动 中的相应项目的选项卡,清除一半复选框,单击 确定,然后重新启动计算机。继续此过程,直到您缩小引起您的问题的设置。
    7. 如果您可以重新启动您的计算机成功登记的所有项时,运行系统配置实用程序工具,单击以选中 正常启动,单击 确定,然后重新启动计算机。
    有关使用 Msconfig.exe 的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
    192926如何执行清理启动 Windows 98 的疑难解答

    windows 95

    以下步骤可以帮助您确定是否您遇到的问题是由于您的计算机的实模式配置。这可能包括从您的冲突和 Autoexec.bat 文件加载的驱动程序。

    1. 重新启动计算机。在显示"正在启动 Windows 95"消息时按 f8 键,然后单击从 启动 菜单的 Step-By-Step 确认
    2. 在提示时加载以下各项 (如果系统提示您加载任何其他项按 N 键):
      • Dblspace 驱动程序。
      • Himem.sys。
      • Ifshlp.sys。
      • Dblbuff.sys。
      • 加载 Windows 95 图形用户界面 (GUI) 选择将所有的 Windows 驱动程序加载。
      : Windows 95 不需要该冲突和 Autoexec.bat 文件,但在计算机上安装某些工具可能需要它们。直到您执行成功的交互式启动,以验证它们不需要,永远不应命名冲突和 Autoexec.bat 文件。

      如果您的实模式配置的干净的启动消除了该问题,请使用 Step-By-Step 确认函数隔离与终止和-驻留 (TSR) 或实模式设备驱动程序冲突。

      通过启动到命令提示符并键入 赢取,按住 SHIFT 键,引导的持续时间来启动 Windows 95 加载 Windows 95。这将防止任何程序启动时自动加载。

      如果问题得到解决通过防止启动时加载的程序,调查以下可能的源。

    Winstart.bat 文件

    加载 tsr 的所需的基于 Windows 的程序,并在 MS-DOS 会话中,则不需要使用 Winstart.bat 文件。

    Winstart.bat 文件的其他信息,请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
    134402从 Autoexec.bat 移动到 Winstart.bat 安装过程中有些 tsr
    启动组

    如果通过绕过启动组来解决问题,请将每个程序从分别以隔离导致问题的程序启动组中删除。

    在注册表中的运行密钥

    警告: 如果注册表编辑器使用不当可能会导致严重的问题,可能会要求您重新安装操作系统。Microsoft 不能保证可以解决问题所产生的错误地使用注册表编辑器。使用注册表编辑器需要您自担风险。

    您可以通过从下面的注册表项中删除该程序的字符串避免加载程序:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
    从下面的注册表项,也可能正在加载的程序:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    Win.ini 文件

    在"负载 ="和"运行 ="此文件的 [窗口] 节中的行可以自动启动程序。请参阅下一节的详细信息。

    测试 Windows 配置文件

    若要测试 Windows 配置文件,使用以下步骤:

    1. 从命令提示符下启动。
    2. 通过键入以下命令重命名 Win.ini 文件,请执行下列操作:
      ren c:\windows\win.ini *.bak
    3. 通过键入 赢得 启动 Windows 95。如果此过程可以解决该问题,请确保在"负载 ="和"运行 ="的 Win.ini 文件 [窗口] 部分中的行是空白或前面用分号 (;) 以防止加载项。
    4. 通过键入以下命令重命名 System.ini 文件,请执行下列操作:
      ren c:\windows\system.ini *.bak
    5. windows 95 要求 System.ini 文件加载图形用户界面。替换原始文件,通过键入以下命令:
      副本 c:\windows\system.cb c:\windows\system.ini
      : Windows 95 开头 System.cb 文件不会加载鼠标的驱动程序。编辑新 System.ini 文件中添加以下行,请执行以下操作:
      [386Enh]
      鼠标 = * vmouse,msmouse.vxd

      [引导]
      drivers=mmsystem.dll
      mouse.drv=mouse.drv
    6. 通过在命令提示符下键入 赢得 启动 Windows 95。如果原始 System.ini 文件替换 System.cb 文件可以解决该问题,很可能是问题所在使用 [引导] 或 [386Enh] 节的原始 System.ini 文件。还原原始文件来解决它。
    7. 若要隔离导致问题的原因,将放置一个分号 (;) 来阻止加载该项目的行的开头。
    有关 System.ini 文件和其默认的项的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
    140441创建新 System.ini 文件没有第三方驱动程序
    保护模式设备驱动程序

    安全模式下禁用的 Windows 95 的所有保护模式设备驱动程序。您可以执行通过禁用保护模式设备驱动程序在设备管理器中测试不兼容的组件和资源冲突。

    删除找出冲突的保护模式设备驱动程序

    1. 单击 开始、 指向 设置、 单击 控制面板 中,然后双击 系统
    2. 设备管理器 选项卡上单击 按类型查看设备
    3. 禁用保护模式设备驱动程序的每个。例如:
      1. 双击 软盘控制器 分支以展开它。
      2. 单击 标准软盘控制器,然后单击 属性
      3. 常规 选项卡上单击以清除 原始配置 (当前) 复选框,然后单击 确定

        : 如果启用硬件配置文件则没有配置的每个复选框。清除要排除故障的硬件配置文件复选框。
      4. 在设备管理器中每个设备重复步骤 A 到 C。
    4. 单击 关闭,然后重新启动计算机。
    如果禁用保护模式驱动程序在设备管理器解决该问题可能存在硬件冲突或驱动程序可能与您的硬件不兼容。有关解决资源冲突,在 Windows 95 中的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
    133240故障排除设备冲突使用设备管理器
    如果您确定 Windows 95 保护模式设备驱动程序不兼容硬件,请与硬件制造商联系,以确定能否获得新的驱动程序。

    更改为标准的 VGA 驱动程序视频驱动程序

    : 如果您执行了本文的"删除保护模式驱动程序以隔离冲突"部分中说明您更改到 VGA 视频驱动程序,您可以跳到下一节。禁用视频适配器,则会将您的视频设置为 VGA 驱动程序。

    安全模式启动 Windows 95 VGA 视频驱动程序。若要确定您遇到该问题是否与您的视频驱动程序,更改到 VGA 驱动程序进行测试。

    注:为了安全返回到以前的配置使用以下步骤:

    1. 备份 System.ini 文件。
    2. 请注意当前的桌面区域 (分辨率) 和调色板。
    3. 记录当前视频适配器的名称。
    若要更改为 VGA 视频驱动程序,请按照下列步骤操作:

    1. 在安全模式下启动 Windows 95。
    2. 单击 开始,指向 设置,单击 控制面板 中,然后双击 显示
    3. 设置 选项卡上单击 更改显示类型
    4. 适配器类型 区域中单击 更改
    5. 单击 显示所有设备
    6. 厂商 框中单击 $ (标准显示类型)。在 型号 框中单击 标准显示适配器 (VGA),然后单击 确定
    7. 直到返回到控制面板,请单击 确定关闭
    8. 重新启动计算机。
    如果您确定您的视频驱动程序是与 Windows 95 不兼容,请与硬件制造商联系,以确定能否获得新的驱动程序。

    注册表损坏

    当您在安全模式启动 Windows 95 时最小日志读取注册表。在对注册表的损坏可能不明显时在安全模式下运行 ; 您可能需要替换现有注册表 (System.dat) 用来确定是否问题由所导致的损坏的注册表备份。要损坏的注册表的疑难解答使用以下步骤:

    1. 从命令提示符下启动。
    2. 从注册表的备份中删除文件属性,通过键入以下命令:
      c:\windows\command\attrib-h-s-r c:\system.1st
    3. 从当前注册表中删除文件属性,通过键入以下命令:
      c:\windows\command\attrib-h-s-r c:\windows\system.dat
    4. 通过键入以下命令重命名注册表,请执行下列操作:
      ren c:\windows\system.dat *.dax
    5. 将备份文件复制到当前注册表中,通过键入以下命令:
      副本 c:\system.1st c:\windows\system.dat
    6. 重新启动计算机。
    : 在 System.1st 文件是在最终阶段的 Windows 95 安装期间创建的注册表的备份。因此,将显示"正在运行 Windows 95 的第一个时间"横幅和 Windows 95 完成设置,如果正在安装。

    如果使用 System.1st 文件替换 System.dat 文件可以解决问题,可能是注册表损坏相关问题。程序和安装 Windows 95 后添加的设备驱动程序可能需要重新安装才能更新新的注册表。

    如果不解决问题请使用以下步骤还原原始注册表:

    1. 将计算机重新启动到命令提示符。
    2. 键入以下的命令并在每个命令之后按 ENTER 键:
      c:\windows\command\attrib-s-h-r c:\windows\system.dat

      复制 c:\windows\system.dax c:\windows\system.dat
      : 如果系统提示您执行此操作覆盖现有的 System.dat 文件。

    3. 重新启动计算机。
    Windows 95 CD-ROM 包括用于备份系统文件以及注册表的工具。 有关这些工具的其他信息,请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
    139437Windows 95 紧急恢复实用程序
    135120配置备份工具备份注册表

测试硬件

若要测试您的硬件,最有效的方法是在一个新,或干净,文件夹中安装 Windows。如果您有一个"干净"安装后,将发生此问题,您的问题是硬件故障。请与硬件制造商联系,或已通过硬件专家检查您的硬件。在新的文件夹中安装 Windows,使用下面的 Microsoft 知识库文章之一中的步骤:
193902如何在新的文件夹中安装 Windows 98
142096如何在新的文件夹中安装 Windows 95
如果您的问题解决了当您在"干净"文件夹中安装 Windows 时,可能损坏您的 Windows 核心文件,或者没有引起该问题的原始安装中的设置。您可以选择要使用新的安装的 Windows,但您必须重新安装程序。如果希望返回到原始的 Windows 安装并继续进行故障诊断使用步骤在下面的 Microsoft 知识库文章:
193902如何在新的文件夹中安装 Windows 98
142096如何在新的文件夹中安装 Windows 95
192926如何执行清理启动 Windows 98 的疑难解答
243039如何执行干净启动 Windows 95 中

属性

文章编号: 82710 - 最后修改: 2007年1月18日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Windows 95
  • Microsoft Windows 98 Standard Edition
关键字:?
kbmt kbgpf kbinfo KB82710 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 82710
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com