본문 바로가기
장바구니0

실전 윈도우 디바이스 드라이버 > 프로그래밍/언어

상품간략정보 및 구매기능

실전 윈도우 디바이스 드라이버

기본설명

상품 선택옵션 0 개, 추가옵션 0 개

제조사 에이콘출판
원산지 국내산
브랜드 에이콘출판
시중가격 48,000원
판매가격 43,200원
배송비결제 주문시 결제
최소구매수량 1 개
최대구매수량 999 개
  • 실전 윈도우 디바이스 드라이버
    +0원

관련상품

등록된 관련상품이 없습니다.

  • 상품 정보

    상품 상세설명

    실전 윈도우 디바이스 드라이버

    9791161752686.jpg

    도서명:실전 윈도우 디바이스 드라이버
    저자/출판사:이봉석/에이콘출판
    쪽수:800쪽
    출판일:2019-02-28
    ISBN:9791161752686

    목차
    1부. 기본편

    1장. 개발환경

    1.1 디바이스 드라이버
    1.1.1 기본 설명
    1.1.2 레거시 드라이버
    1.1.3 PNP 드라이버.
    1.2 개발툴 설치
    1.2.1 WDK
    1.2.2 WDM, KMDF 그리고 UMDF
    1.3 개발 시작 전 검토사항
    1.4 설치 파일
    1.4.1 Version 섹션
    1.4.2 SourceDisksNames 섹션
    1.4.3 SourceDisksFiles 섹션
    1.4.4 DestinationDirs 섹션
    1.4.5 Manufacturer 섹션
    1.4.6 Strings 섹션
    1.4.7 Models 섹션
    1.4.8 DDInstall 섹션
    1.4.8.1 DDInstall 섹션 지시자
    1.4.8.2 DDInstall.Service 섹션
    1.5 빌드
    1.5.1 WDK 7600 콘솔 빌드 환경
    1.5.2 EWDK 빌드 환경
    1.6 디버깅 툴
    1.6.1 DebugView.
    1.6.1.1 DebugView 사용하기
    1.6.1.2 DebugView와 디버그 로그 출력조건
    1.6.2 WinDBG
    1.6.2.1 타겟 PC 설정
    1.6.2.2 디버깅 PC 설정
    1.6.2.3 메모리 덤프 파일을 통한 WinDBG 연결하기
    1.6.2.4 WinDBG 프로그램 체험하기
    1.7 WHQL 소개
    1.7.1 회사 인증서 준비과정
    1.7.2 대시보드 가입
    1.7.3 WHCK 프로그램 참여
    1.7.4 WHLK 프로그램 참여

    2장. 드라이버의 기본

    2.1 디바이스 스택
    2.2 WDM
    2.2.1 IRP
    2.2.1.1 IO_STACK_LOCATION.
    2.2.1.2 IRP 완료
    2.2.2 필수 루틴
    2.2.2.1 DriverEntry
    2.2.2.2 AddDevice.
    2.2.2.3 PlugNPlayDispatch.
    2.2.2.4 PowerDispatch
    2.2.2.5 DriverUnload
    2.2.3 WDM 드라이버 보충 기술
    2.2.3.1 IoSkipCurrentIrpStackLocation
    2.2.3.2 완료 루틴
    2.2.3.3 IRQL
    2.2.3.4 핸들과 프로세스
    2.2.4 WDM 드라이버 샘플 분석
    2.2.4.1 드라이버 빌드, 설치 및 응용프로그램 실행
    2.3 WDF: KMDF
    2.3.1 WDF 프레임워크
    2.3.2 WDF 오브젝트
    2.3.2.1 WdfDriver
    2.3.2.2 WdfDevice
    2.3.2.3 WdfRequest
    2.3.2.4 WdfQueue
    2.3.3 이벤트 함수들
    2.3.3.1 DRIVER_INITIALIZE
    2.3.3.2 EVT_WDF_DRIVER_DEVICE_ADD
    2.3.3.3 EVT_WDF_DEVICE_PREPARE_HARDWARE
    2.3.3.4 EVT_WDF_IO_QUEUE_IO_READ
    2.3.3.5 EVT_WDF_IO_QUEUE_IO_WRITE.
    2.3.3.6 EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL.
    2.3.4 WDF(KMDF) 드라이버 샘플 분석
    2.3.4.1 드라이버 빌드, 설치 및 응용프로그램 실행
    2.3.4.2 드라이버 소스 설명

    2부. 응용편

    3장. 디스크 디바이스 드라이버

    3.1 디스크 드라이버를 만들기 위해 알아야 하는 것
    3.1.1 디스크 드라이버를 만들어서 무엇을 할 수 있을까
    3.1.2 WDK
    3.2 SATA에 대한 소개
    3.2.1 SATA의 개념
    3.2.2 AHCI의 이해
    3.2.3 NCQ.
    3.3 NVMe에 대한 소개
    3.4 윈도우 스토리지 드라이버 모델
    3.4.1 SCSI 미니포트 드라이버
    3.4.1.1 DriverEntry: 디바이스 드라이버 로딩 시기에 호출된다
    3.4.1.2 Callback HwScsiFindAdapter: 발견된 장치 검증을 위해 호출된다
    3.4.1.3 Callback HwScsiInitialize: 발견된 장치의 초기화를 위해 호출된다
    3.4.1.4 Callback HwScsiInterrupt: 인터럽트 서비스 루틴의 역할을 담당한다
    3.4.1.5 Callback HwScsiReset: 발견된 장치의 초기화를 위해 호출된다
    3.4.1.6 Callback HwScsiAdapterControl: 사전에 정의된 특별한 목적을 위해 호출된다
    3.4.1.7 Callback HwScsiStartIo: 모든 SCSI Request 명령어가 전달된다
    3.4.2 SCSI 미니포트 드라이버 샘플 분석
    3.4.2.1 드라이버 빌드와 설치 방법
    3.4.2.2 HwScsiStartIo() 콜백 함수의 주요 동작 코드 분석
    3.4.3 Storport 미니포트 드라이버
    3.4.3.1 SCSI 미니포트 드라이버와 구분되는 특징
    3.4.3.2 Storport 미니포트 드라이버에서 변경된 콜백 함수
    3.4.3.3 Storport 미니포트 드라이버와 스핀락
    3.4.3.4 Storport 미니포트 드라이버 샘플 분석
    3.5 윈도우 애플리케이션과 패스 스루 인터페이스
    3.6 MS WDK가 제공하는 AHCI SATA 호스트 컨트롤러 드라이버3.6.1 Ataport 미니포트 드라이버의 주요 콜백 함수 소개
    3.6.2 마이크로소프트 SATA 미니포트 드라이버 샘플 예제 분석309
    3.6.2.1 DriverEntry에서 하는 일
    3.6.2.2 AhciChannelInitRoutine
    3.6.2.3 AhciHwBuildIo
    3.6.2.4 AhciHwStartIo
    3.6.2.5 AhciHwInterrupt
    3.6.3 드라이버 설치
    3.6.4 윈도우 응용프로그램과 패스 스루 인터페이스(ATA)
    3.7 NVMe 평가판 드라이버
    3.8 스토리지 클래스 드라이버
    3.8.1 파일시스템 볼륨과 스토리지 볼륨
    3.8.2 디스크 드라이버와 스토리지 볼륨
    3.8.3 디스크 스토리지 클래스 드라이버

    4장. HID 디바이스 드라이버

    4.1 HID 드라이버를 만들기 위해 알아야 하는 것
    4.1.1 HID 드라이버를 만들어서 무엇을 할 수 있을까
    4.1.2 WDK
    4.2 HID에 대한 소개
    4.2.1 HID 관계도를 이해하자
    4.2.2 HID 애플리케이션 컬렉션과 윈도우 장치 열거4.2.3 HID 디스크립터
    4.2.4 리포트 디스크립터
    4.2.5 아이템의 이해
    4.2.5.1 Input, Output 그리고 Feature Report
    4.2.5.2 Report Size, Report Count
    4.2.5.3 Usage, Usage 페이지
    4.2.5.4 Logical Minimum, Logical Maximum.
    4.2.5.5 Usage Minimum, Usage Maximum
    4.2.5.6 Physical Minimum, Maximum, Unit Exponent, Unit
    4.2.5.7 리포트 ID
    4.2.6 아이템의 인코딩
    4.2.6.1 짧은 인코딩
    4.2.6.2 긴 인코딩
    4.2.7 리포트 디스크립터의 예제
    4.3 윈도우 HID 클래스 디바이스
    4.3.1 HIDCLASS.SYS 라이브러리와 미니드라이버
    4.3.1.1 미니드라이버 AddDevice 콜백 함수 처리부
    4.3.1.2 미니드라이버 IRP_MJ_PNP, POWER 콜백 함수 처리부
    4.3.1.3 미니드라이버 IRP_MJ_INTERNAL_DEVICE_CONTROL 콜백 함수 처리부
    4.3.2 HID 응용프로그램 라이브러리
    4.3.2.1 Input Report, Feature Report의 실제 의미
    4.3.2.2 응용프로그램에서 HID 클래스 사용하기
    4.4 디바이스 드라이버 실습
    4.4.1 드라이버 샘플 빌드와 설치
    4.4.1.1 DEVCON.EXE 빌드하기
    4.4.1.2 HIDSAMPLE 샘플 드라이버 빌드
    4.4.1.3 HIDSAMPLE 드라이버 설치하기
    4.4.2 응용프로그램 테스트
    4.4.3 응용프로그램 주요 설명
    4.4.3.1 HID 애플리케이션 컬렉션을 검색하는 부분
    4.4.3.2 검색된 애플리케이션 컬렉션을 열어서 정보를 가져오는 부분
    4.4.4 드라이버 주요 소스 설명
    4.4.4.1 리포트 디스크립터를 정의하는 부분
    4.4.4.2 HID 디스크립터를 정의하는 부분
    4.4.4.3 DriverEntry
    4.4.4.4 HIDSAMPLE_AddDevice
    4.4.4.5 IRP_MJ_POWER IRP 명령어 콜백 함수
    4.4.4.6 IRP_MJ_PNP IRP 명령어 콜백 함수
    4.4.4.7 IRP_MJ_INTERNAL_DEVICE_CONTROL IRP 명령어 콜백 함수
    4.5 HID 하위 프로토콜
    4.5.1 HID Over USB
    4.5.1.1 열거
    4.5.1.2 HID 리퀘스트
    4.5.2 HID Over I2C
    4.5.2.1 열거
    4.5.2.2 HID 리퀘스트
    4.6 맺음말

    5장. I2C 드라이버

    5.1 I2C 클라이언트 드라이버를 만들기 위해 알아야 하는 것
    5.1.1 I2C 클라이언트 드라이버를 만들어서 무엇을 할 수 있을까
    5.1.2 WDK
    5.2 I2C에 대한 소개
    5.2.1 I2C 관계도를 이해하자
    5.2.2 I2C 기본 통신규약
    5.3 윈도우와 I2C 버스.
    5.3.1 ACPI와 I2C
    5.3.1.1 DSDT
    5.3.1.2 I2C 호스트 컨트롤러, I2C 터치패드를 서술하는 DSDT 예시
    5.3.1.3 ACPI 이름 오브젝트와 윈도우
    5.3.2 SPB 프레임워크
    5.3.2.1 I2C 호스트 컨트롤러 드라이버(SPB 컨트롤러 드라이버)
    5.3.2.2 I2C 클라이언트 드라이버(SPB 주변 디바이스 드라이버)
    5.4 디바이스 드라이버 실습
    5.4.1 솔루션 빌드
    5.4.2 설치 파일 분석
    5.4.3 응용프로그램, 드라이버 주요 소스 분석
    5.4.3.1 driver.cpp의 DriverEntry
    5.4.3.2 driver.cpp의 OnDeviceAdd
    5.4.3.3 device.cpp의 OnPrepareHardware
    5.4.3.4 device.cpp의 OnIoDeviceControl
    5.4.3.5 peripheral.cpp의 SpbPeripheralWriteRead 내부 함수
    5.5 참고 사이트 정보

    6장. 오디오 디바이스 드라이버

    6.1 오디오 드라이버를 만들기 위한 준비
    6.1.1 오디오 드라이버를 만들어서 무엇을 할 수 있을까
    6.1.2 WDK
    6.1.3 내가 부족한 것은 무엇인가
    6.1.3.1 프로그래밍 언어에 대한 경험(C 언어)
    6.1.3.2 프로그래밍 언어에 대한 추가적인 경험(C++ 언어)
    6.1.3.3 COM에 대한 이해
    6.1.3.4 WDM 윈도우 커널 레벨 드라이버에 대한 이해
    6.1.3.5 개발자로서의 마음가짐
    6.2 본격적으로 공부해보자
    6.2.1 C++과 COM 인터페이스에 대한 간단한 학습
    6.2.1.1 간단한 COM 인터페이스 정의와 구현
    6.2.1.2 2개의 COM 인터페이스 정의문과 클래스 정의 및 구현
    6.2.1.3 AddRef( ) 함수와 Release( ) 함수
    6.2.1.4 오디오 드라이버 COM 인터페이스의 최상위 인터페이스(IUnknown)
    6.2.1.5 인터페이스 간의 상속과 클래스 정의
    6.2.2 WDK 문서를 통한 학습
    6.2.2.1 WDK에서 소개하는 오디오 드라이버 계층도
    6.2.2.2 어떤 포트 필터를 선택할 것인가
    6.2.2.3 토폴로지를 작성한다
    6.2.2.4 핀이 다룰 스트림 데이터 포맷을 결정한다
    6.2.2.5 필터의 개념이 아닌, 드라이버 입장에서의 소개
    6.2.2.6 핀 팩토리
    6.2.2.7 WaveXxx 필터와 토폴로지 필터
    6.2.2.8 토폴로지 필터를 위한 토폴로지 구조도 예시
    6.2.2.9 오디오 드라이버를 작성하는 데 사용되는 COM 인터페이스
    6.2.2.10 COM 인터페이스를 상속받아 정의하는 오디오 드라이버 클래스의 예
    6.2.2.11 오디오 드라이버 동작 흐름
    6.3 간단한 오디오 드라이버를 만들자
    6.3.1 간단한 오디오 드라이버를 설치하기 위한 설치 파일 구성(INF)
    6.3.2 간단한 오디오 드라이버를 빌드하기 위한 파일 구성
    6.3.3 간단한 오디오 드라이버의 빌드, 설치, 운용
    6.3.4 간단한 오디오 드라이버 중요 코드 분석
    6.4 AVStream 드라이버 모델 소개
    6.4.1 AVStream 객체 계층도와 필터 생성
    6.4.2 필터 중심/핀 중심 AVStream 드라이버 개발 방법
    6.4.2.1 필터 중심 드라이버의 Process 콜백 함수
    6.4.2.2 핀 중심 드라이버의 Process 콜백 함수

    7장. 콜백주소 테이블 가로채기

    7.1 이 책에서 말하는 ‘가로채기’란?
    7.2 DRIVER_OBJECT와 드라이버 콜백 함수 테이블
    7.2.1 DRIVER_OBJECT와 콜백 함수들
    7.2.2 DRIVER_OBJECT와 DEVICE_OBJECT
    7.2.3 DRIVER_OBJECT, DEVICE_OBJECT 그리고 MajorFunction
    7.2.4 IRP와 상관없는 콜백 함수들
    7.2.4.1 DriverUnload 콜백 함수
    7.2.4.2 AddDevice 콜백 함수
    7.3 특정 드라이버의 동작을 감시하는 목적의 테이블 가로채기
    7.3.1 특정 드라이버의 DRIVER_OBJECT를 구하는 작업
    7.3.1.1 드라이버 이름을 사용해서 DRIVER_OBJECT를 구하기
    7.3.1.2 디바이스 스택의 필터를 사용해서 DRIVER_OBJECT 구하기
    7.3.2 DRIVER_OBJECT 테이블 가로채기
    7.4 개발자 전용 응용프로그램과 통신하는 채널을 만들기 위한 테이블 가로채기
    7.4.1 FILE_OBJECT와 DEVICE_OBJECT의 연결
    7.4.2 파일 입출력 API와 IRP
    7.4.3 미니포트 드라이버에서 테이블 가로채기
    7.4.3.1 포트 드라이버가 설정한 테이블 가로채기
    7.4.3.2 미니포트 드라이버를 위한 Custom DEVICE_OBJECT를 생성하기
    7.4.3.3 새롭게 설치된 가로채기 함수가 하는 일654
    7.4.3.4 IRP 후처리 가로채기
    7.4.3.5 그 밖에 고려할 것들
    7.5.1 실습 예제 확인
    7.5.3 설치
    7.5.4 테스트
    7.5.5 맺음말

    8장 PCI/PCIe 디바이스 드라이버 671

    8.1 PCI 버스와 PCIe 버스에 대한 소개
    8.1.1 PCI 버스
    8.1.1.1 PCI 버스 주소
    8.1.1.2 PCI 버스가 제공하는 명령(Function)
    8.1.1.3 PCI 버스 구성 과정
    8.1.1.4 PCI 버스와 인터럽트
    8.1.2 PCIe 버스
    8.2 윈도우와 PCI/PCIe 버스
    8.3 PCI 디바이스 드라이버의 기본 구조
    8.3.1 PCI 디바이스 드라이버 작성자가 자주 사용하는 운영체제 제공 함수
    8.3.2 설치 파일에서 고려할 부분
    8.3.3 리소스 다루기
    8.3.3.1 PCI BAR 주소 다루기
    8.3.3.2 Interrupt 처리(MSI 인터럽트).
    8.4 WDM PCI 샘플 드라이버 소개
    8.4.1 PCI 샘플 드라이버 설치와 테스트 응용프로그램 실행
    8.4.2 PCI 샘플 드라이버 소스 분석
    8.4.2.1 IOCTL_PCISAMPLE_REGISTER_SHARED_EVENT
    8.4.2.2 IOCTL_PCISAMPLE_GET_CONFIGURATION_REGISTER
    8.4.2.3 IOCTL_PCISAMPLE_MAPPING_MEMORY
    8.4.2.4 IOCTL_PCISAMPLE_UNMAPPING_MEMORY
    8.4.2.5 IOCTL_PCISAMPLE_ALLOCATE_CONTIGUOUS_MEMORY_FOR_DMA
    8.4.2.6 IOCTL_PCISAMPLE_FREE_CONTIGUOUS_MEMORY_FOR_DMA

    9장. 오토 키보드와 오토 마우스

    9.1 이 책에서 말하는 ‘오토 키보드와 오토 마우스’란?
    9.2 예제에 포함돼 있는 프로젝트들에 대해서
    9.2.1 ClientIoCall 응용프로그램 예제
    9.2.1.1 공통코드
    9.2.1.2 키보드 LED 테스트1
    9.2.1.3 키보드 LED 테스트2
    9.2.1.4 마우스 좌표 테스트
    9.2.2 DriverApi 라이브러리 프로젝트
    9.2.2.1 DriverApi 라이브러리가 제공하는 API 함수 리스트
    9.2.2.2 DriverApi 라이브러리 코드 분석
    9.2.3 ClientIoDevice 드라이버 프로젝트
    9.2.3.1 ClientIoDevice 드라이버 설치파일
    9.2.3.2 ClientIoDevice 드라이버 소스파일 분석 준비
    9.2.3.3 ClientIoDevice 드라이버 소스파일 분석
    9.3 샘플 빌드
    9.4 맺음말
    delivery.jpg
  • 사용후기

    사용후기가 없습니다.

  • 상품문의

    상품문의가 없습니다.

  • 배송/교환정보

    배송정보

    배송업체 : 한진택배 (1588-0011)
     배송비
     2,500원 (25,000원 이상 구매 시 무료 배송/일부상품제외) 군부대 및 도서산간 지역은 추가 배송비가 발생할 수 있습니다.
     ◆배송기간
     : 평일 오전 7시 이전 주문 시 당일 발송 (2~3일 소요) : 단, 공휴일, 연휴, 천재지변 등으로 인해 발송이 지연될 수 있습니다.
     ◆배송추적
     : 당일 발송건에 한해 익일 오전 9시 이후 확인 가능합니다.


    교환/반품

     ◆반품/교환을 원하는 경우 반드시 고객센터로 연락 후 신청하시기 바랍니다.
     ◆반품/교환은 상품 수령일로 부터 7일 이내에만 가능합니다. 단, 상품이 훼손되지 않았거나, 속 비닐이 있는 경우 듣지 않았을    때 가능합니다.
     •고객님의 변심 또는 잘못 주문하신 경우에는 왕복 배송비는 고객님의 부담입니다.
     ◆오배송, 파본, 불량 상품에 대해서는 고객센터로 연락주시면 상담 후 교환해 드립니다.
     ◆오배송, 파본, 불량상품의 배송비는 환불처에서 부담합니다.
     교환/반품
     ◆환불은 상품이 환불에 도착 시 처리됩니다. (카드 취소는 3~5일이 소요될 수 있습니다.)

고객센터 1234-5678

회사명 (주)꼭대기 주소 서울 특별시 마포구 연희로 11,5층 S-537호
사업자 등록번호 795-87-00429 대표 오주봉 전화 02-356-5779 팩스 02-356-5779
통신판매업신고번호 제2017-서울마포-0052호 개인정보 보호책임자 dhwnqhd

Copyright © 2001-2013 (주)꼭대기. All Rights Reserved.

상단으로