首页 > 电脑蓝屏 > 正文

Windows蓝屏了怎么办?

分类:电脑蓝屏 作者:上海电脑维修 来源:www.dy68.com 发布:2015-04-10

说到蓝屏,可能很多朋友会深恶痛绝,颇多诟病,甚至还有歪诗曰“补丁与漏洞齐飞,死机共蓝屏一色”。。。

其实这是一种误解,蓝屏实际上是Windows的”维稳”手段,当发生严重故障时,就要壮士断腕、挥泪斩马谡。而不能欲盖弥彰、阻止上访。以下是盆盆曾经在电梯里看到的蓝屏。嗯,说到电梯,华来四里的程尊华老师曾经和盆盆说过,他小时的理想就是:坐电梯上下楼、坐地铁上下班。现在完全可以问一句:成功其庶几乎?

一提到蓝屏,印象最深的就是2007年,那一年的TechEd上盆盆正在演示一个demo,正在得意的时候,手一抖,Thinkpad蓝屏了,可把盆盆臊了个大红脸。

蓝屏分析

为啥手一抖,Thinkpad就会蓝屏呢?这是什么鬼?

当时课程结束后,赶紧“祭起”Windbg对蓝屏的转储文件进行分析。顺便插一句,尽管Debug本身需要一定的专业技术,但是很多时候,几乎不需要什么Debug的背景知识就可以轻松找到根源。

BugCheck 8086, {0, 0, 0, 0}
*** WARNING: Unable to verify timestamp for Apsx86.sys
*** ERROR: Module load completed but symbols could not be loaded for Apsx86.sys
*** WARNING: Unable to verify timestamp for snapman.sys
*** ERROR: Module load completed but symbols could not be loaded for snapman.sys
Probably caused by : iaStor.sys ( iaStor+a44f )

很快就找到原因,驱动iaStor.sys才是罪魁,这是Intel的SATA磁盘驱动器的驱动程序。

仔细查看其详细信息:

kd> lmvm iaStor
start    end        module name
824c0000 8257e000   iaStor   T (no symbols)
Loaded symbol image file: iaStor.sys
Image path: iaStor.sys
Image name: iaStor.sys
Timestamp:        Tue Feb 13 04:46:47 2007 (45D0D237)
CheckSum:         0004966D
ImageSize:        000BE000
Translations:     0000.04b0 0000.04e0 0409.04b0 0409.04e0

可以看到,时间戳信息是2007年2月13日,而另一台机器是同一机型,为什么就不会蓝屏?一看,原来故障机器的iaStor.sys版本太老了,更新了最新的驱动即可解决问题。

绝知此事

问题到这里,似乎应该结案了。但是这一刻偶像“Mark Russinovich”灵魂附体,想了解一下为什么轻轻晃动机器就会蓝屏,而平常时候却又貌似正常?

于是查看Debug的堆栈信息,话说这个Dump文件真是好东西,相当于Windows系统的“黑匣子”,可以在里面找到很多有用的信息。

a0ac6898 824ca44f 00008086 87923864 85a0e0e8 nt!KeBugCheck+0x14
WARNING: Stack unwind information not available. Following frames may be wrong.
a0ac68c0 81c27ecf 85a070e8 858f4350 ffcd3ff4 iaStor+0xa44f
a0ac68d8 80669330 ffcd3ff4 a0ac68f8 8066fcc8 nt!IofCallDriver+0x63
a0ac68e4 8066fcc8 85a0f020 858f4350 858f4408 acpi!ACPIDispatchForwardIrp+0x2a
……

a0ac69f8 828a7dc3 87f1d4c0 81cc13cc 00000000 nt!IofCallDriver+0x63
a0ac6a0c 828a8051 87f1d4c0 878b6640 87f1d290 Apsx86+0x1dc3
a0ac6a48 828a7210 01f1d4c0 878b6640 a0ac6a70 Apsx86+0x2051
a0ac6a58 81c27ecf 87f1d4c0 878b6640 878b6810 Apsx86+0x1210
a0ac6a70 81cb06f7 8260511a 00000000 00000000 nt!IofCallDriver+0x63
……

粗体显示的Apsx86就是Lenovo磁盘防震功能(APS)的驱动(Apsx86.sys),由于微软不可能有第三方厂商驱动的Symbol,所以没法显示调用函数和参数(包括iaStor.sys)。

所以只能猜测,当机器晃动时,磁盘防震功能的驱动Apsx86.sys会接到传感器发出的指示,了解到机器的震动状态,就赶紧向系统报告……Windows内核最终会通知用磁盘控制器(iaStor.sys),并停止磁盘转动,这就是Lenovo的APS功能的大概原理猜测,这是一个非常棒的功能。

但是可能是老版本的iaStor.sys驱动存在Bug,或者Apsx86.sys这个驱动给iaStor.sys传递了错误的参数,所以导致iaStor.sys无法处理,不得已而调用了nt!KeBugCheck,而使得Windows系统蓝屏。

注意 以上方法仅仅是盆盆的个人猜测,并不一定反映事实,大家姑妄信之。

 

-

联系方式

联 系 人:骆先生

联系手机:13801663620

联系电话:021-66012631

网 址:http://www.dy68.com

E-Mail:13801663620@139.com

在线咨询

点击这里给我发消息   点击这里给我发消息

        因为专业,所以卓越!
-
24小时电话:13801663620|电话:021-66012631
Copyright © 2009-2015|沪ICP备09012912号-2|
『上海电脑维修_上海笔记本电脑维修_上海电脑上门维修_上海上门维修电脑-上海电脑维修网欢迎您的光临』 Inc.