TA的每日心情 | 擦汗 12 小时前 |
---|
签到天数: 2365 天 [LV.Master]伴坛终老
|
前言: 宿舍的电脑刚好出现这个问题,然后那位舍友和自己分别用了两种方法解决了这个问题,因此写出来分享一下。 法一,是专门针对新手,给他们一种自己搜索解决问题的思路——特别是对搜索引擎使用的能力,因为很多时候,搜索引擎能够解决你很多问题。 而法二,仅为抛砖引玉,为蓝屏的解决方法提供另一种思路。
故障描述: 宿舍电脑,Windows XP SP2,硬件列表中声卡驱动名称为Realtek High Definition Audio 初始杀毒软件NOD32。 使用QQ语音聊天,一旦对方点接受的话,就立即蓝屏,但以前并无该问题。其蓝屏信息: IRQL_NOT_LESS_OR_EQUAL STOP:0X0000000A(0X00000001,0X0000001C,0X00000001,0X804FBEE4) 换用卡巴,甚至“裸奔”,故障依旧。
法一(舍友,部分有自己的指导):搜索引擎的使用——关键是搜索什么样的词,和在哪里搜索。
Step 1: 百度搜索“IRQL NOT LESS OR EQUAL”(不含双引号),首先有如下微软的文章。 《错误信息:STOP 0x000000D1 DRIVER_IRQL_NOT_LESS_OR_EQUAL》: http://support.microsoft.com/kb/293077/zh-cn 文中提到:
; B; x% ?0 T ]4 J3 y% b" C3 P& _
8 H: C: F+ k/ S# @2 V引用:
) l9 z* K6 z+ q! T. D, B当启用 Driver Verifier 功能并且驱动程序使用了不正确的地址时,会发生此问题。注意错误信息中可能列出了导致此问题的驱动程序。 但是里面列出的适用操作系统并没有Windows XP,而且该链接描述“DRIVER_IRQL_NOT_LESS_OR_EQUAL”与“IRQL_NOT_LESS_OR_EQUAL”有些不同,所以该解答只能作备用使用。
Step 2: 然后在http://support.microsoft.com,在右边的“查找支持”中搜索“0x0000000A”。
并且在搜索结果页面的左边“查找结果 按产品类别显示:”点选“Windows XP”
发现了如下重要文章:《消除 Windows XP 中出现的“Stop 0x0000000A”错误》 http://support.microsoft.com/kb/314063/ 根据该文档显示,
, m- V* @3 ^$ z6 s2 t$ l- V! q7 y1 _1 y% r; E: M# N# @7 ]+ A
引用:* q/ g5 ~: _4 T: P
如果在安装 Windows XP 之后收到 Stop 0x0A 错误,请使用以下故障排除方法检查其他组件:检查第三方软件或驱动程序。 因此可以认定,问题的产生很可能是驱动程序的问题。
Step 3: 回到Baidu,搜索“QQ语音蓝屏”,找到如下文章: 我关于技嘉915P主板QQ视频、语音聊天蓝屏问题的解决 http://hi.baidu.com/jkyx/blog/item/5cfdb331d40a7da85fdf0e27.html 根椐该文档显示,作者在实验中得出,是c-media 9880声卡驱动的问题。后来无意间“使用Windows Update的‘自定义’,安装C Media Electronics Incorporation - Sound - C-Media High Definition Audio Device的升级更新”即解决了问题。
联系Step 2的文章,那么是不是可以判定该电脑的Realtek HD声卡驱动也有问题呢?是不是安装新驱动即可呢?
Step 4: 到www.mydrivers.com,在页面最上面选“声卡驱动”,并输入“Realtek High Definition Audio”搜索。 结果搜索到适合于XP的最新Realtek驱动。 http://drivers.mydrivers.com/drivers/dir186/d74427.shtml
Step 5: 下载安装,重新启动,再试。故障解决。
法二(自己,参考盆盆的文章):使用windbg对dump文件粗略分析——“照猫画葫芦”
前一段时间看到了盆盆的文章,《Lenovo Thinkpad T61奇怪的蓝屏故障和解决办法[BugCheckID:0x00008086]》 http://blogs.itecn.net/blogs/ahpeng/archive/2007/09/02/lenovo-thinkpad-t61-bugcheckid-0x00008086.aspx 在里面提到了windbg对Crash Dump的分析。所以这次就“照猫画葫芦”,找出问题根源,并且顺利解决。在这里感谢盆盆的文章!
Debugging Tools for Windows - Overview: http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
Step 1: 首先到如下地址下载并安装Windows Symbol Packages: http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx 如果你的操作系统是32位的话,则到如下地址下载并安装Debugging Tools for Windows 32-bit Version: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx 如果你的操作系统是64位的话,则到如下地址下载并安装Debugging Tools for Windows 64-bit Version: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
Step 2: 从朋友处拿crash dump。一般是Mini Dump,在%SystemRoot%\Minidump文件夹下,如果是“核心内存转储”or“完全内存转储”则是文件%SystemRoot%\MEMORY.DMP,不过文件就大得多。
Step 3: 然后点击“开始/所有程序/Debugging Tools for Windows/Windbg”,在打开的Windbg中,“File/Open Crash Dump”,在弹出的对话框中找到该dump文件,然后打开。 : @% Y! B5 @: n
9 l% S; N) [3 H E" V0 v引用:: B, a2 a& Z% h! e7 N
***** Kernel symbols are WRONG. Please fix symbols to do analysis. Unable to load image RtkHDAud.sys, Win32 error 2 *** WARNING: Unable to verify timestamp for RtkHDAud.sys *** ERROR: Module load completed but symbols could not be loaded for RtkHDAud.sys *** WARNING: Unable to verify timestamp for portcls.sys *** ERROR: Module load completed but symbols could not be loaded for portcls.sys *** WARNING: Unable to verify timestamp for ks.sys *** ERROR: Module load completed but symbols could not be loaded for ks.sys *** WARNING: Unable to verify timestamp for sysaudio.sys *** ERROR: Module load completed but symbols could not be loaded for sysaudio.sys *** WARNING: Unable to verify timestamp for wdmaud.sys *** ERROR: Module load completed but symbols could not be loaded for wdmaud.sys Probably caused by : RtkHDAud.sys ( RtkHDAud+41813d )
Probably caused by RtkHDAud.sys?可能声卡驱动文件RtkHDAud.sys引起的问题?
Step 4: 然后在窗口的最下面输入“lmvm RtkHDAud”命令并回车查看RtkHDAud.sys的时间戳。 % ^+ V1 k2 o1 o% s9 V# n. V5 b
' k7 U& S. I& S$ z& v引用:0 V, m: X- |- T) t) K2 F& @
1: kd> lmvm RtkHDAud start end module name f3f60000 f43af000 RtkHDAud T (no symbols) Loaded symbol image file: RtkHDAud.sys Image path: RtkHDAud.sys Image name: RtkHDAud.sys Timestamp: Tue Aug 01 19:06:58 2006 (44CF35D2) CheckSum: 0042EB37 ImageSize: 0044F000 Translations: 0000.04b0 0000.04e0 0409.04b0 0409.04e0 2006-8-1,可能是比较旧的驱动了。是不是使用新驱动即能解决这个问题呢?
Step 5: 然后依据法一的Step 4和Step 5下载新驱动,解决了问题。
备注0:为什么找不到Dump文件? 因为在“启动和故障恢复”中把“写入调试信息”设为“(无)”了。请修改为“小内存转储(64KB)”即可。
备注1:在Windbg对Dump的文件中,如果输入!analyze -v即可在STACK_TEXT查看Debug的堆栈信息。可怜自己才疏学浅,都看不明白......
备注2:在Windbg中如果想打开新的dump文件,应该是使用菜单栏的“Debug/Detach Debuggee”。
备注3: 如果对IRQL_NOT_LESS_OR_EQUAL (0xA)的错误想深究调试下去的话可以看这篇文章:《如何在收到 Stop 错误 IRQL_NOT_LESS_OR_EQUAL (0xA) 后调试系统》 http://support.microsoft.com/kb/818501/zh-cn
如果对程序调试有兴趣的话可以下载下面的PDF,《Windows用户态程序高效排错》: http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html
|
|