다음을 통해 공유


USB 디바이스 에뮬레이션 아키텍처

이 문서에서는 USB 호스트 컨트롤러 및 연결된 디바이스의 동작을 에뮬레이트하는 USB UDE(디바이스 에뮬레이션)의 아키텍처를 설명합니다. UDE를 사용하면 비 USB 하드웨어가 Windows의 USB 호스트 쪽 드라이버를 사용하여 상층부와 통신할 수 있습니다.

UDE 드라이버

UDE 소프트웨어 스택의 다이어그램.

앞의 이미지에서

  • USB 허브 드라이버(Usbhub3.sys) 는 KMDF(커널 모드 드라이버 프레임워크) 드라이버입니다. 허브 드라이버는 USB 허브 및 해당 포트를 관리하고, 열거하고, USB 디바이스 및 해당 다운스트림 포트에 연결할 수 있는 기타 허브의 PDO(물리적 디바이스 개체)를 만드는 작업을 담당합니다.
  • USB 호스트 컨트롤러 확장(Ucx01000.sys) 은 스택의 허브 드라이버에 대한 추상화 계층이며 기본 호스트 컨트롤러 드라이버에 요청을 큐에 대기하기 위한 일반 메커니즘을 제공합니다.
  • UdeCx(UDE 클래스 확장 )는 클라이언트 구현 콜백 함수를 통해 UDE 클라이언트 드라이버에 대한 호출입니다. 클래스 확장은 클라이언트 드라이버가 UDE 개체를 만들고 관리하는 루틴을 제공합니다.
  • UDE 클라이언트 드라이버는 WDF(Windows 드라이버 프레임워크) 및 UDE API와 상호 작용하여 하드웨어를 관리합니다. 위쪽 가장자리는 USB 구문을 사용하여 WDF 및 UDE 클래스 확장과 통신합니다. 아래쪽 가장자리는 하드웨어의 인터페이스를 사용하여 하드웨어와 통신합니다.
  • 사용자 지정 하드웨어: 예를 들어 PCI 하드웨어를 에뮬레이트하여 USB 디바이스로 작동할 수 있습니다.

UDE 디바이스 노드

UDE 클라이언트 드라이버에 대해 로드된 디바이스 스택은 다음과 같습니다.

UDE 디바이스 스택의 다이어그램.