2011-09-07 6 views
0

내 드라이버가 오류가있는 대상 PC에 추락 한 : 나는 커널 모드에서 디버깅하고있어 이후WinDbg - KMDF 드라이버를 죽일 수 있습니까?

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

내 목표는 이제 얼어 붙었다된다. 호스트에서 WinDbg을 다시 시작하면 여전히 대상이 고정 상태가됩니다.

대상 컴퓨터에서 강제 종료 된 드라이버의 강제 종료 (WinDbg에서). 나는 에 대해 알고있다. 컴퓨터를 재시동하지 않아도 좋을 것이다 ...

+0

충돌 커널 드라이버는 재부팅을 의미합니다. 가능한 경우 (작성중인 드라이버에 따라 다름) 드라이버를 커널 공간에서 빼내려면 [Windows 사용자 모드 드라이버 프레임 워크] (http://en.wikipedia.org/wiki/Windows_User_Mode_Driver_Framework)로 드라이버를 마이그레이션하는 것을 고려해야합니다 사용자 공간에 저장됩니다. – vcsjones

답변

3

windbg에서 .reboot로 강제 재부팅 할 수 있습니다. 이는 커널 디버거에서 중단 된 드라이버를 "강제 종료"하는 유일한 방법입니다.

드라이버가 커널 주소 공간에로드되어 시스템의 컨텍스트에서 실행됩니다. 그들은 별도의 "프로세스"가 아니며 충돌 할 때 커널과 독립적으로 닫을 수 없습니다.

2

드라이버를 "죽일"수 없다. 사용중인 드라이버 유형에 따라 (즉, 미니 필터 파일 드라이버) IF 드라이버가 실행중인 컴퓨터에서 fltmc unload FILTER_NAME 명령을 사용하여 문제를 일으키지 않았습니다. 내가 알고있는 윈드 브레이 (windbg)를 통해 그렇게 할 방법이 없다. 운전자가 이미 "추락했다"는 말처럼 들립니다. 즉, 커널이 현재 데이터 손상 가능성이있는 나쁜 상태에 있음을 의미합니다. 이것은 복구 할 수 없기 때문에 커널 드라이버는 모든 일에 매우 조심해야합니다. 기본적으로 커널에 있고 실수를하는 경우 유일한 옵션은 상자를 BSOD하는 것입니다.

관련 문제