【问题标题】:WinDbg - kill hung KMDF-driver?WinDbg - 杀死挂起的 KMDF 驱动程序?
【发布时间】:2011-11-12 05:20:44
【问题描述】:

我的驱动程序在目标电脑中崩溃并出现错误:

Access violation - code c0000005 (!!! second chance !!!)
aebae9d9 8911            mov     dword ptr [ecx],edx

由于我在内核模式下调试,我的目标现在被冻结了。如果我在主机上重新启动 WinDbg,我仍然会冻结目标。

如何强制杀死(来自 WinDbg)目标计算机中挂起的驱动程序。我知道.crash,但不用重启电脑就好了,zzz...

【问题讨论】:

  • 内核驱动程序崩溃意味着重新启动。如果可能(取决于您正在编写的驱动程序),您应该考虑将您的驱动程序迁移到Windows User Mode Driver Framework 以使您的驱动程序脱离内核空间并进入用户空间。

标签: windbg kernel


【解决方案1】:

不可能“杀死”驱动程序。根据您使用的驱动程序类型,您可能会卸载它(即 minifilter 文件驱动程序)IF 使用命令 fltmc unload FILTER_NAME 驱动程序没有引起问题从正在运行的机器。据我所知,无法通过windbg做到这一点。听起来您的驱动程序已经“崩溃”,这意味着内核现在处于错误状态,可能会损坏数据。这是不可恢复的,这就是为什么内核驱动程序也应该非常小心它所做的一切。基本上,如果你在内核中并且你犯了一个错误,那么你唯一真正的选择就是蓝屏死机。

【讨论】:

    【解决方案2】:

    您可以使用 .reboot 从 windbg 强制重新启动 - 这是内核调试器“杀死”挂起的驱动程序的唯一方法。

    驱动程序被加载到内核地址空间并在系统上下文中运行。它们不是一个单独的“进程”,当它们崩溃时不能独立于内核关闭。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2014-05-18
      相关资源
      最近更新 更多