윈도우 디바이스 드라이버
이 책은 윈도우 동작 원리를 가장 먼저 보여준 다음, 디바이스 드라이버와 윈도우의 상호작용에 대해서 설명하고 있다. 그동안 다루어지지 않은 커널 모드에서의 후킹 방법 등에 대해서도 중점적으로 다룬다. 장황하게 이론만 설명하고 끝내는 것이 아니라, 예제를 통해 실전에서 유용하게 사용할 수 있도록 안내하고 있다.
제1부에서는 관련된 유틸리티의 사용 방법은 물론, 응용 프로그램과 디바이스 드라이버의 연결 방법, 디바이스 드라이버가 하드웨어에 접근하는 방법, 그리고 DDK가 제공하는 함수의 사용 방법 등 윈도우 디바이스 드라이버를 개발하기 위해 꼭 알아야만 하는 이론을 배우게 된다. 제2부에서는 제1부에서 배운 이론을 응용하여 최신 디바이스를 제어하기 위한 드라이버를 개발할 수 있다. 끝으로 제3부에서는 제1부에서 배운 이론을 실습할 수 있는 예제 12가지를 실었다.
☞ Tip!
『윈도우 디바이스 드라이버』는 윈도우 2000 이전에서 디바이스 드라이버를 개발하는 방법에 대해 다룰 뿐 아니라, 윈도우 비스타에서 처음 소개된 WDF(Windows Driver Foundation)도 수록하고 있습니다.
이 책의 총서 (18)
작가정보
현재 주식회사 하제소프트의 대표이사를 맡고 있다.
다년간 디바이스 드라이버와 임베디드 시장에서 필요로 하는 많은 제품을 개발하였으며, 분야에 대한 다양한 경험과 지식을 가지고 많은 개발자들의 기술력 향상을 위해 여러 교육사이트에서 현재 교육을 지원하고 있다.
감수 이재홍
PYRASIS.COM이라는 개인 홈페이지를 운영하고 있으며, 여러 가지 기술 문서를 작성하여 공개해 왔다. 특히 Subversion에 관련된 문서를 다수 작성하였고, 관련 도구 개발, 한글화 등을 하였다. FFS File System Driver for Windows라는 오픈소스 프로젝트를 진행하면서 윈도우 디바이스 드라이버 개발 분야에 빠져들게 되었다. 주 관심 분야는 운영체제 커널, 파일 시스템, 소프트웨어 프로젝트 관리이며, IT업계의 스타 플레이어가 되는 것이 꿈이다.『윈도우 프로젝트 필수 유틸리티』(한빛미디어, 2008)를 집필했다.
목차
- 감수자의 글
저자 서문
이 책의 주요 내용
이 책의 학습 로드맵
예제 수록 내용
PART 1 이론편
01장 MS-DDK 소개
1.1 DDK 다운로드
1.2 DDK 설치
1.3 DDK Tools
1.4 디바이스 드라이버의 빌드
02장 세상에서 가장 간단한 디바이스 드라이버 작성하기
2.1 문맥(Context)의 의미
2.2 SIMPLE 디바이스 드라이버 예제 파악하기
2.3 SIMPLE 디바이스 드라이버 빌드 과정과 설치 방법
2.4 설치된 SIMPLE 디바이스 드라이버 확인하기
03장 설치 파일(INF)에 대한 이해
3.1 이름이 정해져 있는 섹션
3.2 이름이 정해져 있지 않은 섹션
3.3 지시자(Directives)
3.4 설치 파일 예제 분석
04장 디바이스 스택(Device Stack)
4.1 디바이스 스택의 개념 파악
4.2 장치 관리자 대화상자를 통한 디바이스 스택의 모습
4.3 디바이스 스택의 모습을 결정하는 설치 파일의 이해
4.4 디바이스 스택을 구성하는 드라이버 코드에 대한 이해
4.5 DDK Tool “Device Tree”를 통해 본 실제 디바이스 스택의 모습
05장 스레드와 IRQL
5.1 가상 메모리, 프로그램 모듈, 스레드
5.2 인터럽트 요구 레벨(IRQL)과 스레드
5.3 동기화 문제(Synchronization Problem)
5.4 타이머 스케줄러와 Idle 스케줄러
5.5 Idle 스케줄러와 디바이스 드라이버
06장 응용 프로그램과 연결되는 디바이스 드라이버
6.1 응용 프로그램이 디바이스 드라이버를 찾는 방법
6.2 디바이스 드라이버와 대화하기 위해서 응용 프로그램이 사용하는 함수
6.3 응용 프로그램에서 커널까지
6.4 커널에서 IO 관리자까지
6.5 IO 관리자에서 디바이스 드라이버까지
6.6 예외와 스택 프레임
07장 디바이스 드라이버 엔트리
7.1 DriverEntry 루틴 - 필수 함수
7.2 AddDevice 루틴 - 필수 함수
7.3 DriverUnload 루틴 - 필수 함수
7.4 공통 IRPDispatch 루틴
7.5 PnP IRPDispatch 루틴 - 필수 함수
7.6 Power IRPDispatch 루틴 - 필수 함수
7.7 IRP StartIO 루틴 - 선택 함수
7.8 IRP Cancel 루틴 - 선택 함수
7.9 IRP Completion 루틴 - 필수 함수
7.10 BuiltIn Timer와 Custom Timer 루틴 - 선택 함수
7.11 System 스레드와 WorkItem 루틴 - 선택 함수
7.12 H/W 인터럽트 서비스 루틴, DPC 루틴 - 선택 함수
08장 드라이버가 사용하는 자료구조
8.1 LIST_ENTRY
8.2 KQUEUE
8.3 KDEVICE_QUEUE
8.4 IO_REMOVE_LOCK
8.5 MDL(Memory Descriptor List)
09장 하드웨어에 접근하는 드라이버 코드 구현
9.1 하드웨어 자원(Resource)에 접근하는 방법(IO Port, 메모리, 인터럽트, DMA)
9.2 PNP IRP_MN_START_DEVICE와 자원 정보
10장 필터 드라이버의 매력
10.1 필터 드라이버와 디바이스 스택
10.2 필터 드라이버 기본 골격
10.3 필터 드라이버의 설치
11장 DDK가 제공하는 함수 분석
11.1 IO 관리자가 제공하는 함수
11.2 커널이 제공하는 함수
PART 2 응용편
12장 USB 버스를 사용하는 드라이버 개발
12.1 USB 버스를 사용하는 다양한 디바이스 스택 분석
12.2 USBDI(USB Bus Driver Interface)
12.3 URB(USB Request Block)
12.4 가상 USB 장치로 DDK가 제공하는 USB 드라이버 분석하기(BULKUSB)
13장 WDF 소개
13.1 WDM과 WDF
13.2 KMDF 예제 드라이버 분석
13.3 USB 버스를 사용하는 KMDF 예제 소스
14장 NT 구형(Legacy) 드라이버 개발
14.1 NT 구형(Legacy) 드라이버와 WDM 드라이버
14.2 NT 구형(Legacy) 드라이버의 로딩과 언로딩
14.3 NT 구형(Legacy) 드라이버가 사용되는 영역
15장 후킹 드라이버 개발
15.1 정규 필터 방식을 사용하는 후킹 방식(디바이스 스택 필터링)
15.2 비정규 방식을 사용하는 후킹 방식(테이블 후킹과 코드 후킹)
PART 3 실습편
01 응용 프로그램에서 디바이스 드라이버까지(CreateFile, CloseHandle)
02 응용 프로그램에서 디바이스 드라이버까지(파일 핸들을 통한 문맥 유지 1)
03 응용 프로그램에서 디바이스 드라이버까지(파일 핸들을 통한 문맥 유지 2)
04 응용 프로그램에서 디바이스 드라이버까지(취소와 Cleanup 실습)
05 응용 프로그램에서 디바이스 드라이버까지
06 StartIo 루틴 작성법 1
07 StartIo 루틴 작성법 2
08 Interrupt Service Routine(ISR)과 Deferred Procedure Call(DPC) 루틴 작성법
09 마우스 필터 드라이버 작성
10 가상 USB 디바이스를 위한 버스 드라이버 작성
11 NT 구형(Legacy) 드라이버 실습(파일 시스템 필터 드라이버)
12 가상 시리얼 디바이스 드라이버
부록
A: 실전에서 사용하는 다양한 디바이스 스택의 모습
B: WinDbg 사용법
찾아보기
출판사 서평
이 책이 제시하는 핵심 내용
윈도우 디바이스 드라이버 개발과 동작 원리
이 책의 특징과 장점
-. 다년간의 실무 경험에서 배우는 윈도우 디바이스 드라이버
-. 다양한 디바이스 드라이버 제작 원리 학습
-. IRP 처리에 대한 심도 있는 설명
어떤 독자를 위한 책인가?
-. 윈도우 디바이스 드라이버 개발자
-. 윈도우 시스템 프로그래밍, 보안 관련 개발자
윈도우 디바이스 드라이버 개발의 지혜를 담은 책
디바이스 드라이버 개발은 한 가지만 알아서는 어렵다. C 언어만 알아서는 안 된다. 운영체제의 동작 원리도 알아야 하고 하드웨어도 알아야 한다.
이 책은 디바이스 드라이버 개발을 처음 접하는 독자에게 윈도우 동작 원리를 설명하고, 디바이스 드라이버와 윈도우가 어떻게 상호 작용하는지 설명한다. 간단한 디바이스 드라이버 제작부터 단계적으로 실습하면서 응용프로그램과 상호 작용하는 법, 인터럽트와 스레드 처리 등을 다룬다. 응용 실습으로 가상 USB 디바이스 드라이버, 가상 시리얼 디바이스 드라이버, 마우스 필터 드라이버 등을 소개해 독자가 필요에 따라 바로 응용할 수 있게 배려했다. 윈도우 2000 이전의 디바이스 드라이버를 개발하는 방법과 윈도우 비스타에서 처음 소개된 WDF(Windows Driver Foundation)도 수록하여 한 권의 책으로 윈도우 디바이스 드라이버의 다양한 요소를 학습할 수 있다.
주요 내용
- 디바이스 드라이버 구조와 동작 원리
- 설치 파일(INF)에 대한 이해
- 디바이스 스택(Device Stack)의 구조
- 인터럽트와 동기화
- 하드웨어에 접근하는 드라이버 구현
- 필터 드라이버 작성법
- PNP 처리 기법
- 전원 처리 기법
- 멀티 프로세서 처리, 인터럽트, DMA 처리
- 디바이스 드라이버에서 사용하는 다양한 자료구조
- USB 버스를 이용한 디바이스 드라이버 개발
- WDF(Windows Driver Foundation)
- 마우스 필터 드라이버 실습
- 가상 시리얼 디바이스 드라이버 실습
관련 도서
『뇌를 자극하는 윈도우즈 시스템 프로그래밍』(한빛미디어, 2007)
『Windows 구조와 원리: OS를 관통하는 프로그래밍의 원리』(한빛미디어, 2006)
기본정보
ISBN | 9788979146202 | ||
---|---|---|---|
발행(출시)일자 | 2009년 01월 02일 | ||
쪽수 | 1036쪽 | ||
크기 |
257 * 188
mm
|
||
총권수 | 1권 | ||
시리즈명 |
IT EXPERT
|
Klover 리뷰 (0)
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
-
반품/교환방법
* 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900) -
반품/교환가능 기간
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내 -
반품/교환비용
-
반품/교환 불가 사유
(단지 확인을 위한 포장 훼손은 제외)
2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
3) 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등 -
상품 품절
-
소비자 피해보상 환불 지연에 따른 배상
2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)
기분 좋은 발견
이 분야의 베스트
이 분야의 신간
-
실리콘밸리에서 통하는 파이썬 인터뷰 가이드10% 24,300 원
-
모던 C#: 타입 시스템 마스터하기10% 27,000 원
-
예제로 배우는 C++ STL10% 29,700 원
-
코딩입문 PYTHON10% 25,200 원
-
50개의 프로젝트로 완성하는 파이썬 업무 자동화10% 19,800 원