[ntdebugging]!locks 에 대한 이해 및 Filter driver에 의한 문제점.

http://blogs.msdn.com/b/ntdebugging/archive/2008/04/17/more-dump-forensics-understanding-locks-in-this-case-a-filter-driver-problem.aspx

 

위 블로그에서는 Hang 상태를 분석하기 위한 !locks 명령의 사용법을 설명하고 있습니다. 커널 모드에서는 !locks 명령으로 ERESOURCE의 상태를 확인할 수 있는데 해당 ERESOURCE의 Owner와 어떤 Thread 들이 Access 하기 위해 기다리고 있는지 알 수 있습니다.

이 블로그에서는 잘못된 ERESORUCE 값이 전달되어 하나의 Thread가 Block 되고 이 Thread가 Owner인 ERESOURCE를 다른 Thread가 기다리고 있는 시나리오를 설명하고 있습니다.