비디오: UMDF 드라이버 디버깅

이 항목에는 User-Mode 드라이버 프레임워크(UMDF) 드라이버를 디버그하는 방법을 보여 주는 Abhishek Ram의 일련의 비디오가 포함되어 있습니다.

비디오를 시청한 후에는 UMDF 디버거 확장에 익숙해지고 기본 디버깅 시나리오에서 사용하는 방법을 알게 됩니다.

비디오는 이전 버전의 Windows에서 UMDF 버전 1 드라이버를 디버깅하는 방법을 보여 주지만 현재 버전의 Windows에서 실행되는 UMDF 버전 2 드라이버와 동일한 기술을 계속 사용할 수 있습니다.

참고 이 비디오에서는 UMDF 버전 1 드라이버만 디버그하는 데 사용할 수 있는 Wudfext.dll 디버거 확장 명령에 대해 설명합니다. UMDF 버전 2.0부터 UMDF 드라이버를 디버그하려면 대신 Wdfkd.dll 디버거 확장 라이브러리를 사용해야 합니다. Wudfext.dll 모든 확장에 대해 Wdfkd.dll 동일한 항목이 있습니다. 자세한 내용은 Wudfext.dll디버거 확장 요약 및 Wdfkd.dll디버거 확장 요약을 참조하세요.

UMDF 디버깅에 대한 자세한 내용은 WDF 드라이버 디버깅에 나열된 topics 참조하세요.

필수 구성 요소

이 콘텐츠를 최대한 활용하려면 UMDF 및 Windows용 디버깅 도구에 대한 실무 지식이 있어야 합니다. 각 세션은 이전 세션을 기반으로 하기 때문에 이러한 데모를 나열된 순서대로 보는 것이 좋습니다.

기본 사항 및 설정

WDK 샘플 및 OSR USB-FX2 학습 키트 사용에 대해 설명합니다.

이 비디오에서는 테스트 머신 준비, Devcon 도구를 사용하여 UMDF Echo 샘플 드라이버 설치, WdfVerifier를 사용하여 지정된 UMDF 드라이버를 호스트하는 호스트 프로세스를 식별하고, WdfVerifier를 사용하여 초기화 코드를 디버그하는 시간에 호스트 프로세스를 디버거에 연결하는 등 UMDF 디버깅 기본 사항에 대해 알아봅니다. 이 비디오에서는 작업 관리자에서 실행 중인 호스트 프로세스를 나열하고 장치 관리자 실행 중인 드라이버를 보는 방법도 보여 줍니다.

디버거 확장을 사용하여 개체 계층 구조 검사

이 부분에서는 UMDF 드라이버 디버깅을 시작하는 방법을 알아봅니다. 이 비디오에서는 앱의 세 인스턴스가 드라이버에 읽기, 쓰기 및 디바이스 I/O 제어 요청을 보낼 수 있도록 OSR USB-FX2 드라이버 샘플 및 애플리케이션 샘플을 설정하는 방법을 설명합니다. 먼저 요청이 리플렉터로 이동한 다음 사용자 모드 드라이버 호스트 프로세스로 이동하는 방법을 확인할 수 있습니다. 이 비디오에서는 FX2 드라이버 샘플에 대한 WDF 개체 계층 구조를 소개하고 다음 UMDF 디버거 확장을 사용하여 UMDF 개체 계층 구조를 트래버스하는 방법을 설명합니다.

UMDF 2 의 경우 Wdfkd.dll디버거 확장 요약 (예: !wdfkd.wdfumdevstacks)을 참조하세요.

프레임워크 USB 개체 액세스

여기서는 드라이버의 프레임워크 USB 개체를 검사하는 방법을 알아봅니다. 이렇게 하려면 WDF 개체 계층 구조를 탐색하여 USB 파이프 개체, USB 인터페이스 개체 및 USB I/O 대상 개체에 도달합니다.

I/O 요청 및 큐

이 비디오에서는 디버거를 사용하여 드라이버의 프레임워크 I/O 요청 개체 및 프레임워크 큐 개체를 검사합니다.

파일 개체 및 콜백 개체

이 부분에서는 프레임워크 파일 개체와 드라이버의 콜백 개체를 검사하는 방법을 알아봅니다.

UMDF 드라이버에서 보낸 I/O 요청 추적

여기서는 App Verifier 도구를 사용하여 디버그하는 방법을 알아봅니다. 드라이버 초기화 코드를 디버그하는 방법과 UMDF 드라이버가 보낸 요청을 아래 커널 스택으로 추적하는 방법도 알아봅니다.

드라이버가 I/O 요청을 완료하지 않음

마지막 비디오에서는 UMDF 드라이버가 받은 요청을 완료하지 못한 경우 사례를 조사하고 프레임워크의 개체 추적 및 참조 추적 기능에 대해 알아봅니다.