iceburning
驱动牛犊
驱动牛犊
  • 注册日期2006-08-18
  • 最后登录2010-02-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望170点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
阅读:1298回复:2

请教:BugCheck EA

楼主#
更多 发布于:2008-06-12 20:49
我做文件重定向驱动中遇到这个问题,请教大牛改如何分析解决?

BugCheck EA, {8202a560, 81f74150, f8ad1cb4, 1}


*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

THREAD_STUCK_IN_DEVICE_DRIVER (ea)
The device driver is spinning in an infinite loop, most likely waiting for
hardware to become idle. This usually indicates problem with the hardware
itself or with the device driver programming the hardware incorrectly.
If the kernel debugger is connected and running when watchdog detects a
timeout condition then DbgBreakPoint() will be called instead of KeBugCheckEx()
and detailed message including bugcheck arguments will be printed to the
debugger. This way we can identify an offending thread, set breakpoints in it,
and hit go to return to the spinning code to debug it further. Because
KeBugCheckEx() is not called the .bugcheck directive will not return bugcheck
information in this case. The arguments are already printed out to the kernel
debugger. You can also retrieve them from a global variable via
"dd watchdog!g_WdBugCheckData l5" (use dq on NT64).
On MP machines (OS builds <= 3790) it is possible to hit a timeout when the spinning thread is
interrupted by hardware interrupt and ISR or DPC routine is running at the time
of the bugcheck (this is because the timeout's work item can be delivered and
handled on the second CPU and the same time). If this is the case you will have
to look deeper at the offending thread's stack (e.g. using dds) to determine
spinning code which caused the timeout to occur.
Arguments:
Arg1: 8202a560, Pointer to a stuck thread object.  Do .thread then kb on it to find
    the hung location.
Arg2: 81f74150, Pointer to a DEFERRED_WATCHDOG object.
Arg3: f8ad1cb4, Pointer to offending driver name.
Arg4: 00000001, Number of times this error occurred.  If a debugger is attached,
    this error is not always fatal -- see DESCRIPTION below.  On the
    blue screen, this will always equal 1.
I Believe I Can Fly,I Believe I Can Touch The sky!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2008-06-13 10:04
如果这样也能找出问题,中国的牛人就太牛了.hehe

帖代码,指出错误行在哪...这样别人才可以帮你分析

不过文件重定向,ms有参考代码,坛子里搜索
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
iceburning
驱动牛犊
驱动牛犊
  • 注册日期2006-08-18
  • 最后登录2010-02-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望170点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-13 11:15
关键是错误没有出在我代码里啊
I Believe I Can Fly,I Believe I Can Touch The sky!
游客

返回顶部