Windows2000中蓝屏死机之停止信息分析

原创 2005年02月28日 08:15:00
    Win2000也许可以说得上是一个划时代的操作系统,但是它仍然不能够避免蓝屏死机(Blue Screen of Death)问题。本文的目的是解刨BSOD问题,同时给出如何处理一般的蓝屏问题的解决步骤。
    
    简介
    
    什么是蓝屏死机(BSOD)问题?
    BSOD就是显示在蓝色屏幕背景下的出错信息。一般这种出错信息严重到你的整个操作系统当机,你只有重新冷启动的选择。
    
    停止消息和硬件消息
    
    Win2000的BSOD和NT4以前的BSOD消息是完全不同的。最大的不同就是NT中的BSOD只包含一个通用的停止消息类型(就是实际的出错代码), 但是Win2000的BSOD包含有两种消息类型:停止消息和硬件消息。停止消息是指,当win2000的内核发现一个它不能够恢复的软件错误时候产生的错误消息。硬件消息是指,当Win2000发现一个严重的硬件冲突时产生的错误消息。
    
    刨析BSOD
    
    BSOD可以分成独立的几部分,每部分包含有有价值的错误处理信息。这几部分包括:
    
    1、bug检查部分:这是BSOD中包含实际出错消息的位置。在这部分中,你应该注意的是出错代码(就是在单词“Stop”后面的十六进制数字)和错误符号(就是紧跟在出错代码后的单词)
    
    2、推荐用户采取行动部分:这部分经常包含一些一般的指导你如何纠正错误的步骤
    的消息。
    
    3、调试端口信息部分:这部分包含有你应该如何设置你的内核调试器的信息。内核调试器是让你可以通过手工连接到计算机并对进程进行调试的工具。
    
    停止信息的四种类型
    
    当程序或则驱动程序发生了一个不能够控制的错误消息或则试图执行一个非法指令时,系统就会发生停止出错信息。而这种信息通常由四种类型组成。
    
    1、常规停止消息:在正常的使用win2000时发生的停止消息
    
    2、安装停止消息:在安装win2000过程中的停止消息,通常由你的系统中存在和2000不兼容的硬件设备引起的。
    
    3、可执行程序安装停止消息:表示发生在2000安装过程中第4个阶段(执行程序部分)的停止消息。
    
    4、软件陷阱停止消息:由于软件中的错误陷阱并且当程序试图执行一个非法指令的时候发生的停止消息。
    
    不管win2000是否迄今为止最伟大的操作系统与否,它不可能是没有错误的。至少我们知道在2000中,BSOD还是存在的。下面是有关它的更详细的描述:
    
    下面是一个具体的BSOD例子:

;
    *** Stop: 0x0000001E (0xF24A447A, 0X00000001, 0X0000000)
    KMODE_EXCEPTION_NOT_HANDLED
    *** Address F24A447A base at f24A0000, DateStamp 35825ef8d - wdmaud.sys
    
    If this is the first time you've seen this Stop error screen, restart your computer.
    If this screen appears again, follow these steps:
    
    Check to be sure you have adequate disk space. If a driver is identified in the
    Stop message, disable the driver or check with the manufacturer for driver updates.
    Try changing video adapters.
    
    Check with your hardware vendor for any BIOS updates. Disable BIOS memory options
    such as caching or shadowing. If you need to use Safe Mode to remove or disable
    components, restart your computer, press F8 to select Advanced Startup Options,
    and then select Safe Mode.
    
    Refer to your Getting Started manual for more information on troubleshooting Stop errors.
    
    Kernel Debugger Using: COM2 (Port 0x2f8, Baud Rate 19200)
    Beginning dump of physical memory
    Physical memory dump complete. Contact your system administrator or technical support group.
    
    根据这个具体的例子,按照上面刨析的BSOD四个部分,下面一一介绍:
    
    bug检查部分:
    
    这是BSOD中包含实际出错消息的位置。它看上去就是下面的代码:
    *** Stop: 0x0000001E (0xF24A447A, 0X00000001, 0X0000000)
    KMODE_EXCEPTION_NOT_HANDLED *** A
ddress F24A447A base at f24A0000, DateStamp 35825ef8d - wdmaud.sys
    
    其中错误代码是一个紧跟在Stop后面的十六进制数,在这里面它由其它四个数字组成。
    
    而错误符号是指紧随其后的KMODE_EXCEPTION_NOT_HANDLED.
    
    在一些BSOD出错信息中,一个内存位置和文件名出现在错误符号的后面。这个信息告诉了当错误发生的时候在内存中的位置和哪个文件导致了错误的发生。当然你是否能够看到该信息是由哪种停止消息类型来决定的。在一些实际运用中,你只能够看到上面的第一行。而这里通常是表示由显示服务中导致的问题。 推荐用户采取行动部分:
    
    在上面的例子中推荐用户采取行动部分如下:
    
    If this is the first time you've seen this Stop error screen, restart your computer. If this screen appears again, follow these steps:
    Check to be sure you have adequate disk space. If a driver is identified in the Stop message, disable the driver or check with the manufacturer for driver updates. Try changing video adapters.
    Check with your hardware vendor for any BIOS updates. Disable BIOS memory options such as caching or shadowing. If you need to use Safe Mode to remove or disable components, restart your computer, press F8 to select Advanced Startup Options, and then select Safe Mode.
    Refer to your Getting Started manual for more information on troubleshooting Stop errors.
    
    推荐用户采取行动部分通常是推荐用户在遇到了出错信息后应该采取的解决步骤。在消息中可以看到,解决一个BSOD也许只要重新启动或则整理出足够大的剩余空间就能够解决了。尽管这样的方法偶尔会起到作用,但是实际上要解决BSOD经常要远远复杂得多。
    
    调试端口信息部分:
    
    这部分包含有你应该如何设置你的内核调试器的信息。我会在以后的网站里面详细介绍什么是2000的内核调试器。在上面的例子中,这部分内容是:
    
    Kernel Debugger Using: COM2 (Port 0x2f8, Baud Rate 19200)
    Beginning dump of physical memory Physical memory dump complete. Contact your system administrator or technical support group
停止信息的四种类型
    
    常规停止消息:
    
    常规停止消息通常是最难解决的出错信息,因为有可能有无数的原因能够导致错误的发生。
    
    安装停止消息:
    
    在安装win2000过程中的停止消息,通常由你的系统中存在有没有列在2000硬件兼容列表中的设备。
    
    解决办法是你查看系统中的硬件设备,找到没有列出在2000兼容列表中的设备。然后和你的硬件设备厂商联系看他们是否能够给你提供该设备的驱动程序。如果他们不能,那你只好从你的系统中删除该设备,并用其它的可以兼容的设备替换掉。
    
    如果你的所有硬件都是兼容的,你也许是存在有两个互相冲突的硬件设备。要解决这个问题,先移走任何不是必要的硬件设备,然后重新装载2000,一旦2000装载成功后,把所有移走的设备全部重新加入到系统中。这样做,通常能够解决这个问题,至少能够告诉你哪些硬件是有冲突的。
    
    可执行程序安装停止消息:
    
    安装2000在可执行程序的安装过程中有两个阶段。第一个阶段是禁止硬件中断同时装载一些基本的组件,例如硬件提取层。第二个阶段是初始化你系统中所有的硬件。如果你在安装程序到了这个阶段的时候收到了停止消息错误。需要再次运行诊断程序,来判断你的硬件是否都工作正常。然后重新安装2000。如果你仍然遇到这个出错消息,那么就需要和微软技术支持部打交道了。
    
    软件陷阱停止消息:
    
    由于软件中的错误陷阱并且当程序试图执行一个非法指令的时候发生的停止消息。例如,程序试图向一个本来是保存数字的变量写字符串的时候,这个错误就有可能发生。如果你遇到了这种类型的错误,需要记下出错信息,是什么软件导致了错误,一般这些软件都有新的版本来纠正这些错误的。
    
    解决问题的技巧下面是当你遇到了停止消息时候可能需要的解决步骤:
    
    首先判断你最近是不是在系统中有任何的变动。如果你有,那么这些变动经常是问题产生的根源。试图删除或者移走新的硬件或软件,看是否能够解决问题。检查系统中的硬件,最好如果有硬件检测程序的话,可以运行该程序进行检测,同时重新插放你的内存卡和扩展卡。
    
    如果你的停止信息是发生在启动中或刚启动的过程中,那么这有可能是你的某个服务或则设备驱动程序中的问题。可以尝试将机器启动到安全模式。如果你的2000系统能够启动成功安全模式,那么表示你的猜测是正确的。
    
    同时要确保你的防病毒程序是设计成和win2000兼容的,并且随时保持更新。如果错误仍然发生,那么进入你的CMOS设置,禁止掉BIOS中的象缓存或则shadow之类的选项,然后重新启动。

相关文章推荐

Windows蓝屏死机代码完全解析.txt

  • 2008年08月19日 17:10
  • 11KB
  • 下载

VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术

有些时候,我们读取磁盘文件,会被hook.我们读到的可能并非实际的文件。我们直接读取磁盘扇区获取数据。实现磁盘数据的读写,不依赖WindowsAPI。 void CSectorEdit2000Dlg:...

0day安全软件漏洞分析技术读书笔记-windows2000的堆的工作方式(下)

#include #include int main() { HLOCAL h1,h2,h3,h4; HANDLE hp; hp=HeapCreate(0,0,0); _asm int 3 ...

Windows2000/XP启动过程详细分析

Windows2000/XP是一个优秀的操作系统,它功能强大,安全稳定,深受广大电脑用户青睐。但在使用过程中,我们明显地感觉到它的启动时间比Windows98要延长许多,比之Windows98更能考验...

0day安全软件漏洞分析技术读书笔记-windows2000的堆的工作方式(上)

空闲态堆块和占用态堆块的块首结构基本一致,只是将块首后数据区的前8个字节用于存放空表指针了。这8个字节在变回占用态时将重新分回块身用于存放数据。 堆表中包含的信息依次是段表索引、虚表索引、空表使用...

查找蓝屏死机

  • 2015年05月16日 20:37
  • 51KB
  • 下载

64位Win7系统安装国外软件时直接蓝屏死机然后重启的一种解决办法(不一定通用)

刚装系统的时候,各种软件都可以顺利安装,
  • sugar13
  • sugar13
  • 2014年11月04日 19:41
  • 1486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows2000中蓝屏死机之停止信息分析
举报原因:
原因补充:

(最多只允许输入30个字)