USB 클라이언트 드라이버 개발을 위한 첫 번째 단계
이 섹션에서는 USB 드라이버 개발 개념 및 도구를 소개합니다. 이 섹션은 Microsoft에서 기본 제공 드라이버를 제공하지 않는 USB 디바이스용 드라이버를 구현하려는 드라이버 개발에 새로운 개발자에게 적용됩니다. 이러한 드라이버를 이 설명서에서 USB 클라이언트 드라이버 라고 합니다. 이 섹션의 항목에서는 고급 USB 개념에 대해 설명하고 USB 클라이언트 드라이버의 일반적인 작업을 수행하는 방법에 대한 단계별 지침을 제공합니다. 이러한 개념에 대한 자세한 내용은 USB 문서의 USB 사양을 참조하세요.
드라이버 개발자는 C++ 프로그래밍 언어로 코딩 환경을 사용하고 함수 포인터, 콜백 함수 및 이벤트 처리기의 개념을 이해해야 합니다. 사용자 모드 드라이버 프레임워크를 기반으로 드라이버를 작성하는 경우 개발자는 C++ 및 COM에 대해 잘 알고 있어야 합니다.
USB 클라이언트 드라이버 개발자를 위한 학습 경로
USB 사양 3.2를 읽습니다.
- 아키텍처의 업계 사양 및 다양한 구성 요소(디바이스, 호스트 컨트롤러 및 허브)에 대해 알아봅니다. 데이터 흐름 모델, 호스트와 디바이스가 서로 통신하는 방법 및 디바이스가 기대하는 요청의 형식을 이해하는 것이 중요합니다.
테스트 USB 디바이스를 가져옵니다.
USB 디바이스 및 해당 하드웨어 사양이 있습니다. 사양은 디바이스 기능 및 지원되는 공급업체 명령을 설명합니다. 사양을 사용하여 디바이스 드라이버의 기능 및 관련 디자인 결정을 결정합니다.
USB 드라이버 개발이 새로운 경우 OSR USB FX2 학습 키트 가 있어야 합니다. 이 키트는 이 설명서 집합에 포함된 USB 샘플을 연구하는 데 가장 적합합니다.
Microsoft MUTT(USB 테스트 도구) 디바이스가 있습니다. MUTT 하드웨어는 JJG Technologies에서 구입할 수 있습니다. 디바이스에 설치된 펌웨어가 없습니다. 펌웨어를 설치하려면 MUTT 소프트웨어 패키지를 다운로드 합니다. 자세한 내용은 패키지에 포함된 설명서를 참조하세요.
USB 디바이스 레이아웃 및 관련 USB 설명자를 연구합니다.
- 구성 설명자, 지원되는 각 대체 설정에 대한 인터페이스 설명자 및 해당 엔드포인트 설명자를 읽어 디바이스 기능을 설명합니다. 개발자는 USBView를 사용하여 연결된 모든 USB 컨트롤러 및 USB 디바이스를 찾아보고 디바이스 구성도 검사할 수 있습니다.
USB 클라이언트 드라이버를 개발하기 위한 드라이버 모델 선택
- 드라이버가 사용자 지정 드라이버인지 또는 대상 디바이스의 디자인에 따라 Microsoft에서 제공하는 드라이버 중 하나를 사용해야 하는지 확인합니다. 최상의 드라이버 모델을 선택하고 각 모델에서 지원하는 기능을 설명합니다.
Microsoft에서 제공하는 USB 드라이버 스택 및 드라이버 개발 개념을 검토합니다.
- Windows의 USB 호스트 쪽 드라이버.
- 모든 드라이버 개발자를 위한 개념입니다.
- 모든 USB 개발자를 위한 개념입니다.
- 디바이스 노드 및 디바이스 스택.
- 페니 오윅과 가이 스미스에 의해 작성 된 Windows 드라이버 재단 과 드라이버 개발. 자세한 내용은 WDF를 사용하여 드라이버 개발을 참조하세요.
- USB 드라이버 샘플.
- Windows 운영 체제에서 드라이버가 작동하는 방식의 기본 사항을 이해합니다. 기본 사항을 알면 적절한 디자인 결정을 내리고 개발 프로세스를 간소화하는 데 도움이 됩니다.
- 사용자 모드와 커널 모드 드라이버 아키텍처 모델을 구분합니다.
- 드라이버 로드 및 Windows가 디바이스 트리 및 디바이스 노드에서 PnP(플러그 앤 플레이) 디바이스를 구성하는 방법을 이해합니다. 또한 개발자는 PnP 관리자가 디바이스 스택을 빌드하는 방법과 드라이버와 해당 디바이스 개체가 디바이스 스택에 배치되는 위치를 이해해야 합니다.
개발 및 디버깅 환경을 준비합니다.
- 최신 WDK(Windows 드라이버 키트)를 설치합니다.
- Microsoft Visual Studio를 설치합니다.
- 디버깅을 위한 설정을 가져옵니다.
- USB 클라이언트 드라이버에 필요한 헤더 및 라이브러리를 사용할 수 있는지 확인합니다.
- 이더넷 네트워크를 통해 호스트 및 대상 컴퓨터에서 커널 모드 드라이버 디버깅을 작성하는 경우 1394 케이블, USB 2.0 또는 3.0 디버그 케이블 또는 null 모뎀 케이블을 구성해야 합니다.
- 사용자 모드 드라이버를 작성하는 경우 Microsoft Visual Studio 환경에서 사용자 모드 디버거를 사용할 수 있습니다. 개발자는 프로세스에 연결하거나 디버거에서 프로세스를 시작하는 방법을 잘 알고 있어야 합니다.
첫 번째 드라이버를 작성합니다.
- 첫 번째 KMDF(USB 클라이언트 드라이버)를 작성하는 방법입니다.
- 첫 번째 UMDF(USB 클라이언트 드라이버)를 작성하는 방법입니다.
- Visual Studio 2012에 포함된 USB 템플릿을 사용하여 첫 번째 USB 클라이언트 드라이버를 작성, 빌드 및 설치합니다. 개발자는 프레임워크 드라이버, 디바이스 및 큐 개체를 설명하고 프레임워크가 드라이버와 통신하는 방법을 이해할 수 있어야 합니다.
USB 제어 전송 요청을 전송하여 드라이버를 확장합니다.
- 표준 제어 요청 및 공급업체 명령을 디바이스에 보냅니다. 자세한 내용은 USB 제어 전송을 보내는 방법을 참조하세요.
드라이버를 확장하여 WDF USB I/O 대상 개체를 사용하여 USB 데이터 전송을 수행 합니다.
- USB 클라이언트 드라이버에 대한 일반적인 작업에 설명된 대로 일반적인 작업을 수행하도록 드라이버를 확장합니다.
USB용 커뮤니티 리소스
Microsoft Windows USB Core 팀 블로그
Microsoft USB 팀에서 작성한 게시물을 확인하세요. 이 블로그는 Windows PC에 있는 다양한 USB 호스트 컨트롤러 및 USB 허브에서 작동하는 Windows USB 드라이버 스택에 중점을 둡니다. USB 클라이언트 드라이버 개발자 및 USB 하드웨어 디자이너를 위한 유용한 리소스는 드라이버 스택 구현을 이해하고, 일반적인 문제를 해결하며, 추적 및 로그 파일을 수집하기 위해 도구를 사용하는 방법을 설명합니다.
-
커널 모드 드라이버 개발자를 위해 OSR Online에서 관리하는 토론 목록입니다.
-
Windows 드라이버 키트는 Windows 하드웨어 랩 키트를 통해 제품이 Windows와 안정적이고 호환되는지 확인하고 Windows 드라이버 샘플을 알아봅니다.