2011-09-07 33 views
0

我的司机已经坠毁在有错误的目标PC:WinDbg - 杀死KMDF驱动程序?

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

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

如何在目标机器上强制杀死(来自WinDbg)我挂起的驱动程序。我知道约.crash,但它不会需要重新启动计算机,zzz ...

+0

崩溃的内核驱动程序意味着重新启动。如果可能的话(取决于你正在编写的驱动程序),你应该考虑将驱动程序迁移到[Windows用户模式驱动程序框架](http://en.wikipedia.org/wiki/Windows_User_Mode_Driver_Framework),以使驱动程序脱离内核空间并进入用户空间。 – vcsjones

回答

3

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

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

2

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