自 2017 年 4 月 11 日起,Windows Vista 客户不再收到来自 Microsoft 的新安全更新、非安全修补程序、免费或付费的帮助支持选项或在线技术内容更新。本文不再更新,仅供参考。有关完整支持声明,请访问
Microsoft网站。
- 什么是蓝屏错误?
- 诊断出现常见蓝屏错误消息的问题
- 0x000000ED and 0x0000007B
- 0x00000024
- 0x0000007E and 0x0000008E
- 0x00000050
- 0x000000D1
- 0x000000EA
- 使用Windows调试程序
本文介绍了什么是蓝屏错误,为什么会发生蓝屏错误,如何识别蓝屏错误,以及如何处理较常见错误消息。
本文专门针对 Microsoft Windows 7。
单击下方以更改操作系统。
戴尔建议:
如何修复导致 Windows Vista 意外关闭或重新启动的蓝屏 (STOP) 错误
当Windows遇到某些情况时,它会挂起并显示蓝屏,且以白色文本显示生成的诊断信息。这些错误的出现就是术语“蓝屏”或“蓝屏死机”的由来。
存在以下情况时,将会出现蓝屏错误:
- Windows检测到一个无法在不丢失数据的情况下恢复的错误
- Windows检测到关键的操作系统数据已损坏
- Windows检测到硬件出现不可恢复的故障
- 这些年来,显示的确切文本已发生变化:Windows NT 4.0中显示密密麻麻的信息,而Windows现代版本中采用的信息相对较少。
导致这两个错误的原因相同,并且相同的故障诊断步骤对两者都适用。这些Stop代码通常会在启动过程中出现。当您遇到其中一个Stop代码时,将会出现以下情况:
- 系统已完成开机自检(POST)。
- 系统已加载NTLDR,并将启动过程的控制权移交给NTOSKRNL(内核)。
- NTOSKRNL被混淆。它无法找到剩下的部分,也无法在认为被存储的位置读取文件系统。
诊断此错误时,您的任务就是确定导致Windows内核混淆的原因,并解决此混淆问题。
检查事项
- 系统BIOS中的SATA控制器配置 如果SATA控制器已从ATA模式切换到AHCI模式(或从AHCI模式切换到ATA模式),由于不同的模式需要不同的驱动程序,因此Windows将无法与SATA控制器进行通信。尝试切换BIOS中的SATA控制器模式。
- RAID设置 如果您一直在尝试进行RAID控制器设置,则可能会收到此错误。尝试将RAID设置恢复为自动检测(通常十分准确)。
- 电缆拔插不当或错误 尝试重新拔插连接驱动器及其控制器的数据线两端。
- 硬盘出现故障 在硬盘上运行内置诊断程序。请记住:代码 7指示的是可更正的数据损坏,而非磁盘故障。
- 文件系统损坏 从Windows安装光盘启动恢复控制台,并运行chkdsk/f/r。
- 未正确配置BOOT.INI(Windows Vista)。如果不小心清除或修补了boot.ini文件,则您可能会在启动过程中收到Stop代码0x7B。从Windows安装光盘启动恢复控制台,并运行BOOTCFG/REBUILD
此Stop代码表示NTFS文件系统驱动程序遇到无法处理的问题,此问题几乎都是由以下三个因素引起:
- 磁盘上的数据损坏
- 内存中的数据损坏
- 系统内存用竭(此情况通常只会在过载的服务器上出现)
检查事项
- 重新拔插内存和所有驱动器数据线,以避免出现因硬件安装不当或错误而造成的数据损坏问题。
- 运行内存和硬盘全面诊断程序。无法在此进行彻底的快速测试。您需要运行全面系统诊断程序。
- 如果这些诊断程序均已通过,则请从Recovery Console(“恢复控制台”)运行全面系统检查(chkdsk /f /r),以检测并(可能)修复所有损坏的数据。
- 如果以上措施均无法解决此问题,则请重新安装Windows。
- 如果重新安装Windows也无法解决此问题,请更换硬盘。
这两个错误表示内核中运行的程序遇到了无法恢复的意外情况。它们具有相同的故障诊断和解决步骤。您可能需要使用Windows调试程序找出导致此错误的原因。
检查事项
- 如果蓝屏信息中提到了某驱动程序或库文件,则请找出此文件隶属的驱动程序或应用程序,然后更新或禁用它。
- 将系统BIOS更新为可用的最新版本。
- 卸载所有最近安装的程序,并回滚所有最近安装的驱动程序。
- 对计算机内存运行诊断程序。
此Stop代码表示系统几乎总是出于以下原因尝试访问不存在的内存:
- 驱动程序尝试访问一页不存在的内存
- 系统服务(如病毒扫描仪)出现意外情况
- 故障或未正确安装内存
- 硬盘上的数据损坏
使用Windows调试程序查明导致这些错误的确切原因。
检查事项
- 如果蓝屏错误中提到了某驱动程序或库文件,则请找出此文件隶属的驱动程序或应用程序,然后将其更新为最新版本或卸载此驱动程序或程序。
- 如果在启动过程中出现错误,则请尝试启动至最后一次正确配置。
- 如果安装程序或驱动程序后出现错误,则请卸载此程序或驱动程序。
- 重新拔插内存和硬盘数据线后,请尝试对硬盘和内存运行全面诊断。
此Stop代码表示驱动程序尝试访问它不应访问的特定内存区域,即驱动程序本身存在缺陷。故障诊断的目的是找到此驱动程序,并禁用或更换它。使用 Windows 调试程序对此错误进行故障处理。
如果没有此调试程序,则您只能卸载/更新/回滚蓝屏信息中提到的包含驱动程序文件的驱动程序。
此蓝屏错误表示设备驱动程序(通常是显卡驱动程序)停滞以等待下一项操作(通常是硬件操作)。多数人可能已看到与此蓝屏信息相关联的
nv4_disp.sys。
检查事项:
- 请确保视频驱动程序已更新为戴尔的最新版本。
- 系统BIOS已完全更新。
- 如果视频驱动程序和系统BIOS均已完全更新,则请咨询制造商以确定是否已将驱动程序更新为最新版本。
- 最后一种解决办法是尝试更换显卡。
重新安装Windows不可能阻止此错误再次出现。
Windows 调试器是 Microsoft 软件开发人员和支持人员用来分析和解决导致内存转储的错误的主要工具之一,它可供你使用。
Windows调试程序是一种附带了很多有用应用程序的强大工具。但在本文中,我们只重点介绍其通过分析因蓝屏错误生成的内存转储文件以确定错误原因的功能。
使用此工具前,请记住以下内容:
- Windows调试程序不是真正的Windows工具。您必须从Microsoft网站上下载并安装此应用程序(15MB)。安装此工具要求用户具有管理员访问权限。
- 此调试程序要求在使用前进行小部分的自定义。
- 调试程序对内存转储进行完全分析时,最快要用30秒,最慢要2分钟。
要使用此工具,请执行以下步骤:
- 从 Microsoft 网站上下载并安装 Windows 调试程序
如果使用 Google 搜索“Windows 调试器”,则返回的第一个链接将是 Windows 调试器主页。
- 完成安装后,依次单击Start(开始)、All Programs(所有程序)、Debugging Tools for Windows和WinDbg以打开Windows调试程序。
- 配置调试程序使用的符号路径,以便将内存转储文件的地址转为有意义的位置名称:展开File(文件)菜单,选择Symbol File Path(符号文件路径),在对话框中键入SRV*c:\debug_symbols*http://msdl.microsoft.com/download/symbols,然后单击OK(确定)。
- 打开一个微型转储文件:展开File(文件)菜单,选择Open Crash Dump(打开崩溃转储),并选择所需的转储文件,然后单击Open(打开)。
系统通常将小型转储文件存储在以下任一位置:C:\WINNT\Minidump\ 或 C:\Windows\Minidump\。文件将被命名为miniMMDDYY-NN.dmp,其中MM代表月,DD代表日,YY则代表创建转储文件的年份。如果多个转储文件于同一天生成,NN则是创建转储文件的序号(在特定日期生成的第一个崩溃转储的编号是01,第二个的编号是02,依此类推)。
- 调试程序将打开转储文件,并对导致系统崩溃的原因作出简短说明。(图2)
首次使用调试程序在系统中打开并转储文件时,在其返回任何信息之前,将花费几分钟下载背景中的符号信息。
图 2:Windows 调试器 调试器命令行的建议命令
从蓝屏停止代码(1000007F 与 0x7F 相同)
Windows 认为导致崩溃的原因(atapi.sys在此示例中,您有时会看到类似 memory_corruption
- 当它返回初步分析时,调试程序将告诉您如何进行深入分析。在窗口底部的命令行 (kd>) 字段中键入“!analyze -v”,然后按Enter 键,让 WinDbg 对文件执行详细分析。
结果将很长,您可能需要在调试器的窗口中垂直滚动才能找到所有相关信息。
图 3:分析结果 停止代码的详细说明(在示例中,您可以看到内核在尝试处理错误时遇到EXCEPTION_DOUBLE_FAULT (8) 或错误)
图 4:对结果的进一步分析 错误检查代码(请注意,在示例中它包含数字 8,表示双重故障)
系统崩溃并出现此确切错误的次数(通常为 1 次)
Windows 在其中对崩溃进行分类的存储区
系统崩溃时的堆栈跟踪,最近调用的过程位于顶部(您可以在示例中看到系统在处理来自 IDE 控制器的请求时崩溃)
图 5:其他分析
系统崩溃时所在模块的名称。在实际系统中,模块名称是一个链接,通过单击它您可以收到一些关于此模块的有用信息,如创建者、创建历史等。