WinDbg - убить зависший KMDF-драйвер? - PullRequest
0 голосов
/ 07 сентября 2011

Мой драйвер завис на целевом ПК с ошибкой:

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

Поскольку я отлаживаю в режиме ядра, моя цель теперь заблокирована. Если я перезапускаю WinDbg на хосте, я все равно получаю остановленную цель.

Как принудительно убить (из WinDbg) моего зависшего драйвера на целевой машине. Я знаю о .crash , но было бы неплохо не перезагружать компьютер, zzz ...

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Вы можете принудительно выполнить перезагрузку из windbg с помощью .reboot - это единственный способ отладчика ядра "убить" зависший драйвер.

Драйверы загружаются в адресное пространство ядра и запускаются в контексте системы. Они не являются отдельным «процессом» и не могут быть закрыты независимо от ядра в случае сбоя.

2 голосов
/ 07 сентября 2011

Невозможно «убить» водителя.В зависимости от того, какой тип драйвера вы используете, вы можете выгрузить его (например, драйвер файла минифильтра) IF драйвер не вызвал проблему с помощью команды fltmc unload FILTER_NAME изходовая машина.Я не знаю, как это сделать с помощью windbg.Похоже, ваш драйвер уже «завис», что означает, что ядро ​​сейчас в плохом состоянии с возможным повреждением данных.Это невозможно исправить, поэтому драйвер ядра также должен быть очень осторожен со всем, что он делает.В основном, если вы находитесь в ядре и ошибаетесь, единственная реальная возможность - использовать BSOD.

...