UMDF 개체 보기

경고

UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한됩니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.

보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.

자세한 내용은 UMDF를 사용하여 시작 참조하세요.

이 항목에서는 Wudfext.dll 디버거 확장을 사용하여 UMDF(User-Mode Driver Framework) 버전 1 드라이버에서 사용하는 개체에 대한 정보를 보는 방법을 설명합니다.

UMDF 버전 2부터 Wdfkd.dll 디버거 확장을 대신 사용해야 합니다. 자세한 내용은 Windows 드라이버 프레임워크 확장(Wdfkd.dll)을 참조하세요.

다음 단계를 수행하여 UMDF 버전 1 개체에 대한 정보를 볼 수 있습니다.

  1. 다음 UMDF 디버거 확장 중 하나를 사용하여 호스트 프로세스에 있는 디바이스 스택을 봅니다.

    • !wudfext.umdevstacks

    • 다음 예제와 같이 !wudfext.umdevstack

      !wudfext.umdevstack <dev-stack-addr>

      정보에는 각 드라이버에 대한 드라이버 개체 및 디바이스 개체가 포함됩니다. 현재 UMDF는 호스트 프로세스에서 하나의 디바이스 스택만 허용하므로 이러한 두 확장의 출력 간에 차이가 없습니다.

  2. 다음 예제와 같이 !wudfext.wudfobject UMDF 디버거 확장을 사용하여 전체 개체 트리를 봅니다.

    !wudfext.wudfobject <IWDFDriver*> 1

  3. 다음 예제와 같이 !wudfext.wudfdevice UMDF 디버거 확장을 사용하여 디바이스의 플러그 앤 플레이(PnP) 및 전원 관리 상태를 확인합니다.

    !wudfext.wudfdevice <IWDFDevice*>

  4. 디바이스와 연결된 큐를 확인하려면 다음 단계를 수행합니다.

    1. !wudfext.wudfdevicequeues UMDF 디버거 확장을 사용하여 디바이스와 연결된 큐를 확인합니다. 이 확장은 큐 속성, 큐 상태 및 드라이버 소유 요청을 보여 줍니다.

    2. 다음 예제와 같이 !wudfext.wudfqueue UMDF 디버거 확장을 사용하여 각 큐에 대한 정보를 가져옵니다.

      !wudfext.wudfqueue <IWDFIoQueue*>

  5. !wudfext.wudfrequest UMDF 디버거 확장을 사용하여 특정 요청에 대한 정보를 가져옵니다. 이 정보에는 기본 사용자 모드 IRP(사용자 모드 I/O 요청 패킷)가 포함됩니다. 사용자 모드 IRP 정보에서 요청이 현재 스택에서 처리되고 있는 위치를 확인할 수 있습니다. !wudfext.umirp UMDF 디버거 확장을 사용하여 이 사용자 모드 IRP 정보를 가져올 수도 있습니다.

  6. 다음을 통해 모든 I/O 대상을 확인합니다.

    1. !wudfext.wudfobject UMDF 디버거 확장을 사용하여 디바이스 개체의 자식 개체를 봅니다. I/O 대상 개체는 디바이스 개체의 자식 개체입니다.

    2. 다음 예제와 같이 !wudfext.wudfiotarget UMDF 디버거 확장을 사용하여 각 I/O 대상 개체에 대한 정보를 확인합니다.

      !wudfext.wudfiotarget <IWDFTarget*>

      이 확장은 대상의 상태 및 보낸 요청 목록을 보여 줍니다.

    현재 모든 I/O 대상을 볼 수 있는 UMDF 디버거 확장이 없습니다.

  7. 다음 UMDF 디버거 확장자를 사용하여 파일 개체에 대한 정보를 볼 수 있습니다.

    !wudfext.wudfrequest 또는 !wudfext.umirp
    !wudfext.wudfrequest 또는 !wudfext.umirp UMDF 디버거 확장을 사용하여 디바이스 개체의 자식 개체인 파일을 봅니다.

    !wudfext.wudffile
    다음 예제와 같이 !wudfext.wudffile UMDF 디버거 확장을 사용하여 프레임워크 파일에 대한 정보를 확인합니다.

    !wudfext.wudffile <IWDFFile*>

    !wudfext.umfile
    다음 예제와 같이 !wudfext.umfile UMDF 디버거 확장을 사용하여 UMDF 스택 내 파일(즉, 애플리케이션 또는 다른 스택의 드라이버에서 만든 파일 개체가 아닌 스택의 드라이버가 만든 파일 개체)에 대한 정보를 볼 수 있습니다.

    !wudfext.umfile <addr>

    경우에 따라 해당 프레임워크 파일이 없을 수 있으며 사용자 모드 IRP 정보에는 UMDF 스택 내 파일이 포함될 수 있습니다.

    !wudfext.umfile이 표시하는 정보에는 UMDF 스택 내 파일에 큐에 대기 중인 모든 IRP가 포함됩니다. 드라이버에서 만든 파일만 해당 파일에 큐에 대기 중인 사용자 모드 IRP를 추적합니다. 애플리케이션에서 만든 파일의 경우 I/O 관리자는 커널 모드 IRP를 추적합니다.

    !wudfext.umdevstacks!wudfext.umdevstack
    !wudfext.umdevstacks!wudfext.umdevstack UMDF 디버거 확장의 출력을 사용하여 드라이버에서 만든 파일에 해당하는 미해결 UMDF 인트라 스택 파일을 봅니다.