구리의 창고

USB 디바이스 설정 본문

Window Driver

USB 디바이스 설정

구리z 2010. 2. 17. 17:04
1. 디바이스 디스크립터를 얻어와서 DEVICE_EXTENSION 에 저장한다.

2. Configuration 디스크립터를 얻어온다

3. Configuration 디스크립터에서 인터페이스 리스트를 가져와, 인터페이스 리스트를 구한다.

4. 인터페이스를 차례데로 검색하면서 값을 정한다.

5. 재설정한 디스크립터를 적용하도록 요청한다.

6. DEVICE_EXTENSION에 값을 저장한다.


주요 함수는 아래와 같다
UsbBuildGetDescriptorRequest : 디스크립터를 얻는 패킷 생성
UsbBuildGetInterruptOrBulkTransferrequest : 데이터 전송 패킷 생성
UsbBuildGetSelectConfigurationRequest : 컨피규레이션 패킷 생성
UsbBuildSelectInterfaceRequest : 인터페이스 선택 패킷 생성
UsbBuildVenderRequest : OEM 작업 패킷 생성



그리고 보통 USB 드라이버를 관리하는 부분은 아래와 같이 큰 그림이 그려진다

   StartDevice()
          ↓
ConfigureDevice()
          ↓
 SelectInterface()

StartDevice() 안에서 ConfigureDevice() 로 얻어낸 configuration 을 통해 SelectInterface() 를 호출한다.

자세한 구현은 생략하도록한다.

'Window Driver' 카테고리의 다른 글

USB 구조  (0) 2010.02.18
IoCreateDevice()  (0) 2010.02.17
Windbg 와 WMWare 환경설정하기  (0) 2010.02.17
USB Driver , *.inf 파일 작성 중 ClassGUID  (0) 2010.02.16
디바이스 드라이버 이벤트발생순서  (0) 2010.02.16
Comments