logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

윈도우 USB 디바이스 드라이버

윈도우 USB 디바이스 드라이버

(WDM부터 최신 KDMF와 UMDF까지 윈도우 드라이버 모델 입문과 실전)

하마다 켄이치로 (지은이), 최강민 (옮긴이)
  |  
에이콘출판
2011-04-15
  |  
40,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

윈도우 USB 디바이스 드라이버

책 정보

· 제목 : 윈도우 USB 디바이스 드라이버 (WDM부터 최신 KDMF와 UMDF까지 윈도우 드라이버 모델 입문과 실전)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 윈도우 프로그래밍
· ISBN : 9788960771925
· 쪽수 : 920쪽

책 소개

윈도우 환경에서 WDM은 물론, 그 후속 드라이버 모델인 KMDF와 UMDF를 이용해 USB 저장 장치 드라이버를 작성하는 방법에 대해 설명한다. 또한 동일한 기능의 드라이버를 각각의 드라이버 모델로 재구성하여 설명하므로 드라이버 모델 간의 개발 방법에 대한 차이를 더 잘 이해할 수 있을 것이다. USB 디바이스 드라이버에 처음 입문하거나 기존 USB 드라이버를 최신 드라이버 모델로 재구성해야 하는 개발자라면 반드시 읽어야 할 필독서다.

목차

1장 WDM 디바이스 드라이버 기초
___1.1 디바이스 드라이버 입문
______1.1.1 디바이스 드라이버의 정의
______1.1.2 추상화 인터페이스 제공
______1.1.3 디바이스 드라이버의 계층 구조
______1.1.4 디클래스 드라이버와 벤더 드라이버
___1.2 윈도우 디바이스 드라이버
______1.2.1 윈도우의 간략한 역사
______1.2.2 윈도우 비스타의 커널 구성(2가지 모드)
______1.2.3 윈도우 비스타가 지원하는 3가지 종류의 드라이버
___1.3 디바이스 드라이버 개발 입문
______1.3.1 디바이스 드라이버 실행
______1.3.2 디바이스 드라이버 개발 환경 구축
______1.3.3 WDK 폴더 구성
______1.3.4 WDK를 사용한 빌드 방법
______1.3.5 디버그 환경 구축
______1.3.6 디바이스 드라이버 프로그래밍 입문
______1.3.7 디바이스 드라이버 빌드
______1.3.8 INF 파일 작성
______1.3.9 드라이버 셋업
______1.3.10 INF 파일 구조
______1.3.11 레지스트리와 디바이스 드라이버 관련 설정
___1.4 WDM의 기본
______1.4.1 DriverEntry 함수
______1.4.2 펑션 드라이버에 등록해야 하는 함수
______1.4.3 이벤트부터 하위 드라이버와의 통신
______1.4.4 WDM의 핵이 되는 4가지 구조체
______1.4.5 메모리 할당과 해제
______1.4.6 MajorFunction 작성 방법
______1.4.7 스켈톤 드라이버 작성
___1.5 AddDevice 디바이스 초기화 처리
______1.5.1 AddDevice 함수에 작성해야 할 것
______1.5.2 AddDevice 함수 코드
______1.5.3 AddDevice 함수의 검증
___1.6 플러그앤플레이
______1.6.1 플러그앤플레이 개요
______1.6.2 플러그앤플레이 구현
______1.6.3 플러그앤플레이 검증
___1.7 전원 관리
______1.7.1 전원 관리를 구현하지 않을 경우
______1.7.2 전원 관리 처리의 개요
______1.7.3 전원 관리 처리 구현
______1.7.4 전원 관리 처리 검증
___1.8 애플리케이션에서 디바이스 제어
______1.8.1 애플리케이션에서 열기/닫기
______1.8.2 IRP_MJ_CREATE, IRP_MJ_CLOSE 처리
______1.8.3 애플리케이션에서 읽고 쓰기
______1.8.4 읽기/쓰기 검증
______1.8.5 디바이스 제어 코드 작성법
______1.8.6 디바이스 제어 코드 검증
___1.9 정리

2장 USB 저장 장치의 기초
___2.1 USB의 개요
______2.1.1 USB의 특징
______2.1.2 주소
______2.1.3 4가지 전송 방식과 엔드포인트
______2.1.4 하드웨어 개요
___2.2 USB 프로토콜 계층의 개요
______2.2.1 패킷
______2.2.2 트랜잭션
______2.2.3 각종 전송 데이터
___2.3 USB 디바이스의 구성과 디스크립터
______2.3.1 USB 디바이스의 구성
______2.3.2 리틀 엔디언
______2.3.3 디스크립터
______2.3.4 디바이스 디스크립터
______2.3.5 컨피규레이션 디스크립터
______2.3.6 인터페이스 디스크립터
______2.3.7 엔드포인트 디스크립터
______2.3.8 문자열 디스크립터
______2.3.9 디바이스 쿼리 디스크립터, 기타 속도 컨피규레이션 디스크립터
___2.4 리퀘스트
______2.4.1 GET_STATUS
______2.4.2 CLEAR_FEATURE
______2.4.3 SET_FEATURE
______2.4.4 SET_ADDRESS
______2.4.5 GET_DESCRIPTOR
______2.4.6 GET_CONFIGURATION
______2.4.7 SET_CONFIGURATION
______2.4.8 GET_INTERFACE
______2.4.9 SET_INTERFACE
______2.4.10 클래스 리퀘스트와 벤더 리퀘스트
___2.5 USB 디바이스로서의 동작
___2.6 대용량 저장 장치 클래스
______2.6.1 대용량 저장 장치 클래스의 개요
______2.6.2 CB/CBI 프로토콜
______2.6.3 벌크 전용 프로토콜
______2.6.4 디스크 접근
______2.6.5 SCSI 규격의 개요
___2.7 정리

3장 KMDF 디바이스 드라이버 개발
___3.1 KMDF 개요
______3.1.1 공통 부분의 라이브러리화
______3.1.2 KMDF의 기본 구성
______3.1.3 주요 구조체(오브젝트)
___3.2 KMDF 입문
______3.2.1 KMDF 기본 코드
______3.2.2 KMDF용 INF 파일 작성
______3.2.3 KMDF 드라이버 작성
______3.2.4 KMDF 드라이버 빌드와 실습
______3.2.5 플러그앤플레이와 전원 관리
___3.3 KMDF 드라이버의 기본 오브젝트
______3.3.1 WDF_OBJECT_ATTRIBUTES 구조체
______3.3.2 WDFQUEUE 오브젝트
______3.3.3 WDFREQUEST 오브젝트
______3.3.4 WDFFILEOBJECT 오브젝트
______3.3.5 WDFMEMORY 오브젝트
___3.4 KMDF 드라이버 개발의 기본
______3.4.1 애플리케이션에서 접근
______3.4.2 데이터 읽기/쓰기
______3.4.3 디바이스 제어
___3.5 윈도우의 USB 드라이버 개요
______3.5.1 USB 호스트 드라이버의 구조
______3.5.2 KMDF의 USB 기본 처리
___3.6 USB 디바이스의 초기화와 종료
______3.6.1 KMDF의 USB 초기화, 종료 처리
______3.6.2 컨피규레이션 디스크립터 얻기
______3.6.3 WDFUSBPIPE 오브젝트 얻기
______3.6.4 초기화와 종료 처리 코드
___3.7 USB 디바이스 제어
______3.7.1 디바이스 드라이버의 사양
______3.7.2 DeviceIoControl의 제어 코드 정의
______3.7.3 컨피규레이션 디스크립터 얻기
______3.7.4 컨피규레이션 디스크립터 확인
___3.8 클래스 리퀘스트 발행
______3.8.1 클래스 리퀘스트 발행 순서
______3.8.2 클래스 리퀘스트 발행 코드
___3.9 벌크 전송 처리
______3.9.1 벌크 전송 처리 구현 방법
______3.9.2 벌크 전송 구현
___3.10 SCSI 명령어 처리
______3.10.1 SCSI 명령어 발행
______3.10.2 INQUIRY 처리
______3.10.3 SCSI 명령어 발행 실습
___3.11 미디어 용량 측정
______3.11.1 READ_CAPACITY 처리
______3.11.2 파이프 리셋 처리
______3.11.3 REQUEST_SENSE 처리
___3.12 미디어 리더 프로그램
______3.12.1 MBR
______3.12.2 READ10 명령어로 읽기
______3.12.3 MBR 읽기 실습
___3.13 정리

4장 UMDF 디바이스 드라이버 개발
___4.1 UMDF 드라이버의 개요
______4.1.1 UMDF의 개념
______4.1.2 UMDF의 디바이스 제어 처리 흐름
______4.1.3 UMDF 드라이버 개발을 위한 준비
___4.2 DLL 개발과 설치
______4.2.1 UMDF를 설치하기 위한 INF 파일
______4.2.2 UMDF 드라이버가 DLL인 이유
______4.2.3 DLL 필수 구현 함수
______4.2.4 디버그를 위한 WPP
______4.2.5 UMDF 드라이버 스켈톤 코드
______4.2.6 UMDF 빌드 필수 파일
______4.2.7 DLL 설치
___4.3 UCOM의 기본 동작과 IDriverEntry 인터페이스
______4.3.1 COM 개론
______4.3.2 C++에서의 Interface 정의
______4.3.3 IUnknown 구현
______4.3.4 IClassFactory 구현
______4.3.5 MIDriverEntry부터 디바이스 클래스의 임시 구현
______4.3.6 COM 모듈의 동작 실습
___4.4 플러그앤플레이와 전원 관리
______4.4.1 UMDF 디바이스 드라이버의 기본 구조
______4.4.2 IPnpCallbackHardware 인터페이스
______4.4.3 IPnpCallback 인터페이스
______4.4.4 디바이스 클래스 구현
______4.4.5 디바이스 클래스 생성 코드
______4.4.6 플러그앤플레이와 전원 관리 실습
___4.5 UCOM 드라이버의 기본 제어
______4.5.1 프레임워크(I/O 관리자)의 리퀘스트에 응답
______4.5.2 애플리케이션의 접근부터 큐 클래스 구현
______4.5.3 디바이스 읽기/쓰기부터 IWDFMemory 인터페이스
______4.5.4 DeviceIoControl 함수로 제어
___4.6 디바이스의 제어 처리
______4.6.1 IWDFIoRequest와 IWDFIoTarget
______4.6.2 IWDFIoRequest::Send 함수로 디바이스 제어
______4.6.3 새 리퀘스트를 작성해 제어
___4.7 USB 디바이스 초기화
______4.7.1 UMDF의 USB 기본 처리
______4.7.2 UMDF 디바이스 드라이버의 USB 초기화
______4.7.3 초기화 처리를 위한 준비
______4.7.4 IWDFUsbTargetDevice 얻기
______4.7.5 IWDFUsbInterface 얻기
______4.7.6 IWDFUsbTargetPipe 얻기
______4.7.7 SetPipePolicy로 통신 설정
______4.7.8 USB 디바이스의 초기화와 종료 처리
______4.7.9 USB 디바이스의 초기화와 종료 처리 구현
___4.8 디바이스 드라이버의 사양
___4.9 컨피규레이션 디스크립터 얻기
______4.9.1 컨피규레이션 디스크립터를 얻는 코드
______4.9.2 OnDeviceIoControl 함수 수정
______4.9.3 컨피규레이션 디스크립터 확인
___4.10 클래스 리퀘스트 발행 처리
______4.10.1 제어 전송 처리 구현
______4.10.2 클래스 리퀘스트 발행 처리 구현
______4.10.3 OnDeviceIoControl 함수 수정
___4.11 벌크 전송 처리
______4.11.1 IRequestCallbackRequestCompletion 인터페이스 상속
______4.11.2 ForwardFormattedRequest와 OnCompletion 함수의 구현
______4.11.3 OnRead와 OnWrite 함수의 구현
______4.11.4 드라이버 빌드와 검증용 윈도우 PC에 복사
___4.12 SCSI 명령어 처리
______4.12.1 INQUIRY 명령어 확인
______4.12.2 READ_CAPACITY 명령어 확인
___4.13 미디어 리더 프로그램
___4.14 정리

부록
A 릴리즈 버전 드라이버 작성
B 64비트 PC에서 동작
___B.1 INF 파일
___B.2 64비트 환경에서 실행하는 방법
C 서명(KMCS)
D GUID 생성
E Driver Install Frameworks API 이용
F 참고 문헌

저자소개

하마다 켄이치로 (지은이)    정보 더보기
중학교 시절 MZ-1200이란 PC를 손에 넣은 이래 베이식, 기계어, FORM, WICS 등을 경험한 후 얄팍하지만 두루두루 다양한 언어를 탐하는 어중간한 오타쿠가 됐다. 전문학교 졸업 후 시스템 하우스에 취직했으나 연필로 회로설계를 하는 것이 싫어 좌절하기도 했다. 그 후 어셈블러나 C 코딩을 하거나, VxWorks 애플리케이션, 비주얼 베이식 애플리케이션을 작성하며, 무선 제어기 수리와 영업직까지 맡고 있는 자신을 발견하고 엔지니어 길에서 벗어났다는 생각에 98년에 전직해 USB를 시작으로 임베디드 분야로 진로를 바꿨다. 정리 해고가 두려워 어느 OS벤더 회사로 전직했으나 훨씬 고수준의 업무에 늘 쫓기고 있다. 『Windows XP 디바이스 드라이버 프로그래밍 입문과 실전』(기술평론사, 2003년), 『입문 UPnP』(일본 브레인웨어, 2007년) 등을 집필한 바 있다.
펼치기
최강민 (옮긴이)    정보 더보기
숭실대학교 전산원 소프트웨어 정보학과를 졸업하고 일본 교보정보통신에서 휴대폰 소프트웨어 개발업무를 담당했으며 지금은 임베디드시스템 컨설팅 및 개발 회사인 디오이즈(www.dioiz.com)에서 근무하고 있다. 임베디드 소프트웨어에 흥미와 애정이 많으며 최고의 임베디드 소프트웨어 개발자가 되기 위해 오늘도 열심히 타겟보드를 벗삼아 밤을 지새고 있다.
펼치기

추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책