Top

USB 개발의 모든 것 세트

  • 원서명USB Complete: The Developer's Guide (4th edition), USB Mass Storage: Designing and Programming Devices and Embedded Hosts
  • 지은이Jan Axelson, 하마다 켄이치로
  • 옮긴이신진철, 최강민
  • ISBN : 9788960772038
  • 69,000원
  • 2011년 05월 31일 펴냄 (절판)
  • 페이퍼백 | 1,556쪽 | 188*250mm
  • 시리즈 : 임베디드 시스템

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

[ 세트 구성: 전2권 ]

1) 『(개정 4판) USB 완전정복: 3.0 버전까지 USB의 모든 것』
2) 『윈도우 USB 디바이스 드라이버: WDM부터 최신 KDMF와 UMDF까지 윈도우 드라이버 모델 입문과 실전』


『(개정 4판) USB 완전정복』 소개

USB는 모든 IT 제품의 만능(Universal) 인터페이스로 자리 잡은 범용의 고속 인터페이스다. 『(개정 4판) USB 완전정복』은 이렇게 광범위 하게 사용되는 USB의 모든 것을 담은 책이다. 개정 4판에서는 USB 3.0 슈퍼스피드와 기타 최신 정보를 추가했다. 2011년부터는 USB 3.0 기술이 폭발적으로 확산되리라 예상된다. 인텔 샌드브릿지 마더보드가 USB 3.0을 기본 탑재하기 시작했으며 외장 SSD, HDD등 고속을 요하는 주변기기의 인터페이스로 속속 채용되고 있다. 『(개정 4판) USB 완전정복』은 USB를 개발하는 모든 개발자에게 완벽한 해답을 줄 것이다.


『윈도우 USB 디바이스 드라이버』 소개

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

저자/역자 소개

[ 저자 소개 ]

Jan Axelson
『시리얼 포트 완전정복』, 『임베디드 네트워킹: 이더넷과 인터넷 구축』, 『USB 대용량 저장장치』의 저자다. Jan은 「Circuit Cellar」, 「Nuts & Volts」, 「EDN」 등 다양한 저널에 기사를 쓰고 있다.

하마다 켄이치로 (浜田憲一郎)
중학교 시절 MZ-1200이란 PC를 손에 넣은 이래 베이식, 기계어, FORM, WICS 등을 경험한 후 얄팍하지만 두루두루 다양한 언어를 탐하는 어중간한 오타쿠가 됐다. 전문학교 졸업 후 시스템 하우스에 취직했으나 연필로 회로설계를 하는 것이 싫어 좌절하기도 했다. 그 후 어셈블러나 C 코딩을 하거나, VxWorks 애플리케이션, 비주얼 베이식 애플리케이션을 작성하며, 무선 제어기 수리와 영업직까지 맡고 있는 자신을 발견하고 엔지니어 길에서 벗어났다는 생각에 98년에 전직해 USB를 시작으로 임베디드 분야로 진로를 바꿨다. 정리 해고가 두려워 어느 OS벤더 회사로 전직했으나 훨씬 고수준의 업무에 늘 쫓기고 있다. 『Windows XP 디바이스 드라이버 프로그래밍 입문과 실전』(기술평론사, 2003년), 『입문 UPnP』(일본 브레인웨어, 2007년) 등을 집필한 바 있다.


[ 『(개정 4판) USB 완전정복』 감수자 소개 ]

디오이즈 http://www.dioiz.com
디오이즈는 2001년 설립 이후로 다양한 분야의 임베디드 시스템에 바로 적용할 수 있는 임베디드 소프트웨어 개발, 공급, 교육, 컨설팅을 전문으로 하는 회사다. 디오이즈가 공급하는 임베디드 소프트웨어 제품으로는 임베디드 시스템용 실시간 커널, USB 호스트/디바이스 스택, 파일 시스템, TCP/IP 스택, GUI 등이 있다.

[ 옮긴이 소개 ]

신진철
아주대학교 기계공학과를 졸업했다. 자동 제어, SI, UI 등 중구난방으로 생계를 연명하다가 어울림 정보기술에 입사한 후 임베디드 시스템 커널 업무를 담당했고, 삼성 소프트웨어 멤버십 출신이다. 현재는 삼성전자 생활가전 사업부에서 선행 프로토형식과 시스템 소프트웨어를 개발 중이다. 2011년부터는 한양대학교 전자컴퓨터통신공학부에서 학술파견 석사과정을 밟을 예정이다. 에이콘출판사에서 출간한 『윈도우 임베디드 CE 6.0 프로그래밍』(2009)을 번역했다.

최강민
임베디드 시스템 컨설팅 및 개발 회사인 디오이즈에서 각종 임베디드 소프트웨어 개발 업무를 담당했으며, 현재는 uITRON 사양의 RTOS 개발 회사인 MiSPO에서 근무 중이며, RTOS 포팅과 미들웨어 개발 업무를 담당 중이다.

목차

목차
  • 1장 USB 기초
    • 사용상 제약 사항
      • 사용자 이점
      • 개발자 측면의 이점
      • USB의 한계
    • USB와 이더넷
      • USB와 IEEE-1394
    • 인터페이스의 진화
      • USB 1.0
      • USB 1.1
      • USB 2.0
      • USB 3.0
      • USB OTG
      • 무선 USB
    • 버스 구성 요소
      • 토폴로지
      • 버스 속도에 관해
      • 용어
    • 역할
      • 호스트의 역할
      • 디바이스의 역할
      • 버스 속도와 데이터 처리 능력
    • 디바이스 개발
      • 구성 요소
      • 개발 도구
      • 프로젝트 개발 단계
    • USB 3.0 FAQ
      • 기능
      • 호환성
      • 케이블
      • 전원
  • 2장 USB 전송
    • 전송 기초
      • 기초
      • 통신의 목적
      • 버스상의 데이터 관리
    • 전송의 구성 요소
      • 엔드포인트: 데이터를 만들거나 쓰는 곳
      • 트랜잭션 형식
      • 파이프: 엔드포인트를 호스트에 연결
      • 전송 방식
      • 스트림 파이프, 메시지 파이프
      • 전송 개시
    • USB 2.0 트랜잭션
      • 트랜잭션 페이즈
      • 패킷 순서
      • 타이밍 제약과 타이밍 보장
      • 분할 트랜잭션
    • 전송 성공에 대한 보증
      • 상태 코드와 제어 코드
      • 제어 전송 상태 보고
      • 에러 확인
    • 슈퍼스피드 트랜잭션
      • 패킷 형식
      • 데이터 전송
      • 링크 관리 패킷
  • 3장 용도별 전송 방식
    • 제어 전송
      • 가용성
      • 구조
      • 데이터 크기
      • 속도
      • 에러 검출과 에러 처리
      • 디바이스의 책임
    • 벌크 전송
      • 가용성
      • 구조
      • 데이터 크기
      • 속도
      • 에러 검출과 에러 처리
      • 디바이스의 책임
    • 인터럽트 전송
      • 가용성
      • 구조
      • 데이터 크기
      • 속도
      • 에러 검출과 에러 처리
      • 디바이스의 책임
    • 등시성 전송
      • 가용성
      • 구조
      • 데이터 크기
      • 속도
      • 에러 검출과 에러 처리
      • 디바이스의 책임
    • 시간이 중요한 전송
      • 버스 대역폭
      • 디바이스 기능
      • 호스트 기능
      • 호스트 지연
  • 4장 열거
    • 열거 프로세스
      • 열거 단계
      • 디바이스 제거
      • 성공적인 열거를 위한 팁
    • 디스크립터
      • 디스크립터 종류
      • 디바이스
      • 디바이스 한정자
      • 컨피규레이션
      • 다른 속도 컨피규레이션
      • 인터페이스 연관 디스크립터
      • 인터페이스 디스크립터
      • 엔드포인트
      • 슈퍼스피드 엔드포인트 짝
      • 문자열
      • 바이너리 오브젝트 스토어와 디바이스 기능
      • 기타 표준 디스크립터
      • 마이크로소프트 OS 디스크립터
      • USB 2.0용 디스크립터로 업데이트
  • 5장 제어 전송
    • 제어 전송의 요소
      • SETUP 스테이지
      • DATA 스테이지
      • STATUS 스테이지
      • 에러 처리
      • 디바이스 펌웨어
    • 표준 요청
      • Get Status
      • Clear Feature
      • Set Feature
      • Set Address
      • Get Descriptor
      • Set Descriptor
      • Get Configuration
      • Set Configuration
      • Get Interface
      • Set Interface
      • Synch Frame
      • Set SEL
      • Set Isochronous Delay
    • 기타 요청
      • 클래스 전용 요청
      • 제조사 전용 요청
  • 6장 칩 선택
    • USB 디바이스의 구성 요소
      • USB 2.0 컨트롤러의 내부
      • 기타 디바이스 요소
    • 디바이스 개발 간소화
      • 디바이스 요구 사항
      • 칩 문서
      • 드라이버 선택
      • 디버깅 툴
    • USB 마이크로 컨트롤러 211
    • 마이크로칩 PIC18F4550
      • 사이프레스 EZ-USB
      • ARM
    • 외부 CPU와 인터페이스하는 컨트롤러
      • ST-NXP 와이어리스 ISP1582
      • PLX 테크놀로지 NET2272
      • FTDI USB UART와 USB FIFO
  • 7장 디바이스 클래스
    • 요소와 사용
      • 공인 스펙
      • 클래스 스펙 요소
    • 정의된 클래스
      • 오디오
      • 통신 디바이스
      • 컨텐츠 보안
      • 디바이스 펌웨어 업그레이드
      • 휴먼 인터페이스
      • IrDA 브릿지
      • 대용량 저장장치
      • 개인 헬스케어
      • 프린터
      • 스마트카드
      • 정지 이미지 캡처
      • 실험 및 계측
      • 비디오
    • 비표준 기능 구현
      • 드라이버 선택
      • 범용 드라이버 선택
      • RS-232로부터 변환
      • 패러럴 포트로부터 변환
      • PC 사이 통신
  • 8장 호스트와 통신
    • 디바이스 드라이버
      • 계층적 드라이버 모델
      • 사용자 모드와 커널 모드
    • 각 계층의 내부
      • 애플리케이션
      • 사용자 모드 클라이언트 드라이버
      • 커널 모드 클라이언트 드라이버
      • 버스와 호스트 컨트롤러 드라이버
    • 드라이버 작성
      • 커널 모드 드라이버
      • 사용자 모드 드라이버
      • 테스팅 도구
    • GUID 사용
      • 디바이스 셋업 GUID
      • 디바이스 인터페이스 GUID
  • 9장 디바이스와 드라이버 결합
    • 장치 관리자 사용
      • 디바이스 보기
      • 속성 페이지
    • 레지스트리 내부의 디바이스 정보
      • 하드웨어 키
      • 클래스 키
      • 드라이버 키
      • 서비스 키
    • INF 파일
      • 구조와 문법
      • 디바이스 전용 값
    • 디바이스 식별 문자열 사용
      • 일치하는 것 검색
      • INF 파일 제공
    • 툴과 진단 지원
      • INF 파일 사용 팁
      • 사용자가 볼 수 있는 것
  • 10장 디바이스 감지
    • API 함수 호출 방법 개요
      • 매니지드 코드와 언매니지드 코드
      • 데이터 관리
    • 디바이스 검색
      • 디바이스 인터페이스 GUID 얻기
      • 디바이스 정보 세트 포인터 요청
      • 디바이스 인터페이스 식별
      • 디바이스 경로 이름으로 구조체 요청
      • 디바이스 경로 추출
      • 통신 종료
    • 핸들 얻기
      • 통신용 핸들 요청
      • 핸들 닫기
    • 디바이스 장착/제거 감지
      • 디바이스 알림
      • 디바이스 알림 등록
      • 디바이스 변경 메시지 캡처
      • 디바이스 변경 메시지 읽기
      • 메시지에서 디바이스 이름 얻기
      • 디바이스 알림 정지
  • 11장 휴먼 인터페이스 장치: 제어와 인터럽트 전송
    • HID란?
      • 하드웨어 요구 사항
      • 펌웨어 요구 사항
    • 디스크립터
      • HID 인터페이스
      • HID 클래스 디스크립터
      • 리포트 디스크립터
    • HID 전용 요청
      • Get Report
      • Get Idle
      • Get Protocol
      • Set Report
      • Set Idle
      • Set Protocol
    • 데이터 전송
      • 펌웨어 작성
      • 도구
  • 12장 휴먼 인터페이스 장치: 리포트
    • 리포트 구조
      • HID 디스크립터 툴
      • 컨트롤 아이템과 데이터 아이템 값
      • 아이템 형식
    • 메인 아이템 형식
      • 입력, 출력, 특성 아이템
      • 컬렉션
    • 전역 아이템 형식
      • 리포트 식별
      • 데이터 사용에 관한 설명
      • 단위 변경
      • 원본 데이터 변환
      • 데이터 크기와 형식 설명
      • 전역 아이템 저장과 가져오기
    • 로컬 아이템 형식
      • 물리 디스크립터
      • 패딩
  • 13장 휴먼 인터페이스 장치: 호스트 애플리케이션
    • HID API 함수
      • HID 정보 요청
      • 리포트 송수신
      • 리포트 데이터 제공과 사용
      • HID 통신 관리
    • 디바이스 식별
      • Vendor ID와 Product ID 읽기
      • 디바이스 기능 포인터 얻기
      • 디바이스 기능 얻기
      • 버튼, 값의 기능 얻기
    • 리포트 전송과 수신
      • 디바이스에 출력 리포트 전송
      • 디바이스에서 입력 리포트 읽기
      • 디바이스로 특성 리포트 전송
      • 디바이스로부터 특성 리포트 읽기
      • 통신 종료
  • 14장 WinUSB
    • 기능과 제약 사항
      • 디바이스 요구 사항
      • 호스트 요구 사항
      • 디바이스 펌웨어
      • WinUSB 드라이버 할당
    • 디바이스 접근
      • WinUSB 핸들 얻기
      • 인터페이스 디스크립터 요청
      • 엔드포인트 식별
      • 파이프 규칙 설정
      • 벌크, 인터럽트 전송으로 데이터 쓰기
      • 벌크, 인터럽트 전송으로 데이터 읽기
      • 제조사 정의 제어 전송 사용
      • 통신 종료
  • 15장 허브의 모든 것
    • USB 2.0
      • 허브 중계기
      • 트랜잭션 변환기
      • 허브 컨트롤러
      • 속도
      • 활성 링크 유지
    • USB 3.0
      • 버스 속도
      • 구성 요소
      • 관리 트래픽
    • 허브 클래스
      • 허브 디스크립터
      • 허브 클래스 요청
      • 포트 표시기
  • 16장 전원 관리
    • 전원 옵션
      • 전압
      • 버스 전원 사용
      • 필요 전원
      • 호스트로 알림
      • 배터리 충전
    • 허브 전원
      • 전원 소스
      • 과전류 보호
      • 전원 스위칭
    • 전원 절약
      • USB 2.0 연결 전원 관리
      • 서스펜드 상태
      • 슬립 상태
      • 슈퍼스피드 전원 관리
      • 윈도우에서의 전원 관리
  • 17장 테스트와 디버깅
      • 하드웨어 프로토콜 분석기
      • 소프트웨어 프로토콜 분석기
      • 트래픽 발생기
    • 테스팅
      • 적합성 테스트
      • 윈도우 로고
  • 18장 버스상의 패킷
    • USB 2.0
      • 로우스피드, 풀스피드 버스 상태
      • 하이스피드 버스 상태
      • 데이터 인코딩
      • 동기 유지
      • 타이밍 정확도
      • 패킷 형식
      • 패킷 간 지연
      • 테스트 모드
    • 슈퍼스피드
      • 데이터 스크램블
      • 인코딩
      • 링크 계층
      • 리셋
  • 19장 전기적/물리적 인터페이스
    • USB 2.0 송수신기
      • 케이블 세그먼트
      • 로우/풀스피드 송수신기
      • 하이스피드 송수신기
      • 신호 전압
    • USB 2.0 케이블
      • 접점
      • 커넥터
      • 분리 가능 케이블과 일체형 케이블
      • 케이블 길이
      • 버스 길이
      • 회로에 의한 USB 직접 연결
    • USB 3.0
      • 송신기와 수신기
      • 케이블
    • 신호 품질 보장
      • 노이즈 소스
      • 평형 선로
      • 꼬임선
      • 차폐
      • 엣지 레이트
      • 분리된 인터페이스
    • 무선화
      • 무선 USB 인증
      • 사이프레스 WirelessUSB
      • 기타 옵션
  • 20장 임베디드 시스템용 호스트
    • USB OTG
      • 기능과 제한 사항
      • OTG 커넥터
      • A 디바이스와 B 디바이스
      • OTG 디바이스의 요구 사항
      • OTG 디스크립터
      • HNP 특성 코드
    • 기타 호스트 옵션
      • 요구 사항
      • 디바이스 포트
    • 컨트롤러 칩
      • 마이크로 컨트롤러
      • 인터페이스 칩

  • 『윈도우 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 이용

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안