虽然基于NT架构的Windows 2000/XP系统稳定性已经大大增强,甚至Windows XP号称“从不死机”,但我们仍然会不时看到蓝色警报信息,这就是通常所说的“蓝屏”,究竟是怎么回事呢?
一、Windows 2000/XP爆发蓝色警报的原因
Windows 2000/XP采用了分层结构,它的两个层又称模式,分别为用户模式(User Mode)和内核模式(Kernel Mode),应用程序是无法直接访问硬件设备的,只有借助驱动程序才能直接访问。
不过,即使NT架构再稳定,由于会由于某些原因,例如硬件冲突、硬件产生问题、注册表错误、虚拟内存不足、动态链接库文件丢失、资源耗尽等,此时可能会导致驱动程序或应用程序出现错误,严重时甚至会波及内核层。这种情况下,Windows会中止系统运行,并启动名为KeBugCheck的功能,通过检查所有中断的处理进程,并同预设的停止代码和参数比较后,屏幕将变为蓝色,并显示相应的错误信息和故障提示,由于出现这种现象时实际上就意味着死机,因此常称为“Blue Screen of Death”(BSOD),又称“STOP信息”或“停止信息”。
二、认识蓝色警报中隐藏的信息
Windows 2000/XP的BSOD窗口与Windows NT4以前的BOSD窗口有着很大的区别,最大的区别是NT的BSOD窗口仅包括一个通用的停止消息代码,但Windows 2000/XP的BSOD包含了停止消息和硬件消息两种类型,前者是发现一个无法恢复的软件错误时产生的错误信息,后者是发现一个严重的硬件错误时产生的错误信息。
虽然图1窗口中的信息看起来很复杂,但一般均由以下三部分组成:
1.错误信息
在“*** Stop:”至“****** wdmaud.sys”之间的这段内容是所谓的错误信息,由出错代码、自定义参数、错误符号等三部分组成,各部分的含义如下:
出错代码:STOP后面的16进制数字;
自定义参数:出错代码字符的组成,由程序人员定义,一般用户很难理解;
错误符号:KMODE_EXCEPTION_NOT_HANDLED
在错误符号后面,这里还显示了一个内存位置和文件名,可以了解到发生错误时的内存位置和源文件。对我们来说,其实最有用的还是前面的出错代码信息,在搜索微软知识库时将会用到。
标签: