다음을 통해 공유


USB 관련 UMDF 1.x 인터페이스

Warning

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 시작을 참조하세요.

USB 디바이스에는 하나 이상의 구성이 있을 수 있습니다. 각 구성에는 하나 이상의 인터페이스가 있을 수 있습니다. 각 인터페이스는 하나 이상의 대체 설정과 연결되며, 각 대체 설정은 하나 이상의 엔드포인트를 정의합니다. 엔드포인트는 디바이스 하드웨어의 버퍼를 나타냅니다.

파이프는 현재 대체 설정의 호스트 컨트롤러와 엔드포인트 간의 연결에 대한 소프트웨어 추상화입니다. 파이프는 I/O의 대상이 될 수 있으며 IWDFUsbTargetPipe 인터페이스에 의해 UMDF에 노출됩니다.

USB 관련 UMDF 인터페이스는 WinUSB 아키텍처를 기반으로 빌드됩니다. 기본적으로 WinUSB는 여러 구성 디바이스의 첫 번째 구성에만 액세스할 수 있습니다. 따라서 WinUSB 인터페이스는 선택 구성 요청을 제출하는 기능을 노출하지 않습니다. 따라서 UMDF의 I/O 대상 기능은 첫 번째가 아닌 다른 디바이스 구성 선택을 지원하지 않습니다.

USB 관련 UMDF 인터페이스에는 일반 USB 모델과 유사한 개체 계층 구조가 있습니다. UMDF 드라이버는 IWDFUsbTargetDevice 인터페이스에 의해 노출되는 대상 디바이스 개체를 만듭니다. 그런 다음 드라이버는 IWDFUsbTargetDevice 메서드를 사용하여 IWDFUsbInterface 인스턴스에 의해 노출되는 USB 인터페이스에 액세스할 수 있습니다. 드라이버는 IWDFUsbInterface 메서드를 호출하여 설정 및 엔드포인트를 조작할 수 있습니다.

다음 표에서는 USB 관련 UMDF 인터페이스 계층 구조를 보여줍니다.

USB 관련 UMDF 인터페이스 파생된 원본
IWDFUsbTargetDevice IWDFIoTarget
IWDFUsbInterface IWDFObject
IWDFUsbTargetPipe IWDFIoTarget

IWDFUsbTargetDeviceIWDFUsbTargetPipe 인터페이스는 IWDFIoTarget 인터페이스에서 파생되므로 I/O 대상 개체를 노출합니다. IWDFUsbInterface 인터페이스는 IWDFIoTarget(IWDFUsbInterface는 IWDFObject 인터페이스에서 파생됨)에서 파생되지 않으므로 I/O 대상 개체를 노출하지 않습니다. 인터페이스 세부 정보를 검색하고 조작하기 위해 전송된 모든 I/O는 대상 디바이스로 전송됩니다.

간단한 UMDF 기반 USB 클라이언트 드라이버를 작성하는 방법에 대한 단계별 지침은 첫 번째 UMDF(USB 클라이언트 드라이버)를 작성하는 방법을 참조하세요.

UMDF 기반 USB 클라이언트 드라이버에 필요한 소스 코드에 대해 알아보려면 UMDF(USB 클라이언트 드라이버 코드 구조) 이해를 참조하세요.