다음을 통해 공유


개발자를 위한 WinUSB 소개

드라이버 개발자로서 WinUSB(Windows USB)를 이해하면 특히 USB 디바이스로 작업할 때 개발 프로세스를 크게 간소화할 수 있습니다. WinUSB는 사용자 지정 드라이버를 작성할 필요 없이 USB 디바이스와 통신할 수 있는 Windows에 포함된 일반 드라이버입니다. 이렇게 하면 시간을 절약하고 복잡성을 줄이며 여러 Windows 버전에서 호환성을 보장할 수 있습니다.

WinUSB 사용의 주요 이점

  1. 간소화된 개발:

    • 사용 편의성: WinUSB는 USB 통신과 관련된 많은 복잡성을 추상화하여 USB 디바이스와 보다 쉽게 상호 작용할 수 있도록 합니다.
    • 사용자 지정 드라이버 필요 없음: 많은 USB 디바이스의 경우 WinUSB를 직접 사용할 수 있으므로 사용자 지정 드라이버를 작성하고 유지 관리할 필요가 없습니다.
  2. 플랫폼 간 호환성:

    • 표준화된 인터페이스: WinUSB는 USB 통신을 위한 표준화된 인터페이스를 제공하므로 여러 Windows 버전에서 호환성을 보장하는 데 도움이 될 수 있습니다.
  3. 시간 및 비용 효율성:

    • 개발 시간 단축: WinUSB를 사용하면 USB 드라이버를 개발하고 테스트하는 데 필요한 시간을 크게 줄일 수 있습니다.
    • 유지 관리 비용 절감: Microsoft에서 WinUSB를 유지 관리하므로 업데이트 및 지원되는 것에 의존하여 장기 유지 관리 비용을 줄일 수 있습니다.
  4. USB 기능에 대한 액세스:

    • 전체 USB 기능: WinUSB는 대량 전송, 제어 전송, 인터럽트 전송 및 동시 전송을 비롯한 다양한 USB 기능을 지원합니다.

WinUSB를 사용하여 수행할 수 있는 작업

  1. 디바이스 통신:

    • 데이터 전송: 대량, 제어, 인터럽트 또는 등시 전송을 사용하여 USB 디바이스 간에 데이터를 보내고 받습니다.
    • 제어 요청: 제어 요청을 보내 디바이스를 구성하거나 정보를 검색합니다.
  2. 디바이스 구성:

    • 구성 설정: 구성, 인터페이스 및 대체 설정을 선택하여 USB 디바이스를 구성합니다.
    • 엔드포인트 관리: 데이터 전송을 위한 엔드포인트를 관리합니다.
  3. 디바이스 열거형:

    • 디바이스 식별: 시스템에 연결된 USB 디바이스를 열거하고 식별합니다.
    • 설명자 검색: 디바이스 설명자, 구성 설명자, 인터페이스 설명자 및 엔드포인트 설명자를 검색합니다.
  4. 사용자 지정 애플리케이션:

    • 사용자 모드 애플리케이션: WinUSB API를 사용하여 USB 디바이스와 통신하는 사용자 모드 애플리케이션을 개발합니다.
    • 펌웨어 업데이트: USB 디바이스에 대한 펌웨어 업데이트 메커니즘을 구현합니다.
  5. 테스트 및 디버깅:

    • 프로토타입 생성: USB 디바이스 통신을 신속하게 프로토타입으로 생성하여 하드웨어 기능을 테스트합니다.
    • 디버깅: WinUSB를 사용하여 호스트와 USB 디바이스 간의 통신 문제를 디버그합니다.

WinUSB의 구성 요소

WinUSB에는 다음이 포함됩니다.

  • 커널 모드 드라이버(winusb.sys)
  • winusb.h에 설명된 WinUSB 함수를 노출하는 winusb.dll(사용자 모드 동적 링크 라이브러리)입니다. 이러한 함수를 사용하여 사용자 모드 소프트웨어로 USB 디바이스를 관리할 수 있습니다.

기본적으로 winusb.sys 디바이스의 커널 모드 스택에 상위 필터 드라이버로 설치됩니다. 앱은 디바이스의 UMDF 함수 드라이버와 통신하여 읽기, 쓰기 또는 디바이스 I/O 제어 요청을 실행합니다. 이 구성에서 winusb.sys 디바이스 스택의 플러그 앤 플레이 및 전원 소유자 역할을 합니다. USB 디바이스의 함수 드라이버로 winusb.sys 설치할 수도 있습니다.

WinUSB 시작

이 섹션에는 다음에 대한 정보가 포함되어 있습니다.

  • 디바이스에 대한 올바른 드라이버 선택
  • WinUSB를 사용하여 USB 디바이스와 통신
  • USB 디바이스의 함수 드라이버로 winusb.sys 설치

앱과 USB 디바이스가 통신하는 방법을 보여 주는 자세한 코드 예제도 찾을 수 있습니다.

참고 항목

WinUSB는 Windows 8부터 동시 전송을 지원합니다.