HOME > 상세정보

상세정보

(드라이버 개발자를 위한)윈도우 파일 시스템 초판

(드라이버 개발자를 위한)윈도우 파일 시스템 초판 (24회 대출)

자료유형
단행본
개인저자
이병오
서명 / 저자사항
(드라이버 개발자를 위한)윈도우 파일 시스템 / 이병오 지음.
판사항
초판.
발행사항
파주 :   사이버출판사 ,   2006.  
형태사항
600 p. : 삽도 ; 25 cm.
기타표제
초보자를 위한 드라이버 제작 예제 & 응용 드라이버 개발 실전
ISBN
8955981988:
서지주기
참고문헌(p. 590-591)과 색인(p. 592-600) 수록
일반주제명
Microsoft Windows NT device drivers (Computer programs) Microsoft Windows device drivers (Computer programs) Computer programming.
000 01123namccc200337 k 4500
001 000045306170
005 20100805024406
007 ta
008 061113s2006 ggka b 001a kor
020 ▼a 8955981988: ▼c \29000
024 3 0 ▼a 9788955981988 ▼d 93000
040 ▼a 211009 ▼c 211009 ▼d 211009
050 4 ▼a QA76.76.D49
082 0 4 ▼a 005.7/126 ▼a 005.4/4769 ▼2 22
082 0 4 ▼a 005.7126 ▼2 22
090 ▼a 005.7126 ▼b 2006a
100 1 ▼a 이병오
245 2 0 ▼a (드라이버 개발자를 위한)윈도우 파일 시스템 / ▼d 이병오 지음.
246 0 3 ▼a 초보자를 위한 드라이버 제작 예제 & 응용 드라이버 개발 실전
250 ▼a 초판.
260 ▼a 파주 : ▼b 사이버출판사 , ▼c 2006.
300 ▼a 600 p. : ▼b 삽도 ; ▼c 25 cm.
504 ▼a 참고문헌(p. 590-591)과 색인(p. 592-600) 수록
650 0 ▼a Microsoft Windows NT device drivers (Computer programs)
650 0 ▼a Microsoft Windows device drivers (Computer programs)
650 0 ▼a Computer programming.
900 1 1 ▼a Yi, Pyong-o
940 ▼a Duraibo kaebalcha rul wihan Windou p`ail sisut`em
940 ▼a Windou p`ail sisut`em
945 ▼a KINS

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7126 2006a 등록번호 121134160 (13회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7126 2006a 등록번호 121134161 (9회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 3 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.7126 2006a 등록번호 151215087 (2회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M ?
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7126 2006a 등록번호 121134160 (13회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7126 2006a 등록번호 121134161 (9회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.7126 2006a 등록번호 151215087 (2회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M ?

컨텐츠정보

책소개

운영체제 내부의 구조와 드라이버 제작 과정을 파헤친 책이다. 드라이버의 개념뿐만 아니라 개발 과정에서의 위험성과 운영체제의 특성에 관해 자세히 설명하고 있는 것이 특징이다. 또한 관련 프로그램을 예로 들면서 드라이버 개발의 개념에 접근할 수 있는 방법까지도 제시하고 있다.

이 책은 크게 두 부분으로 구성되어 있다. 1~8장은 윈도우의 구조, 드라이버 동기화 매커니즘, 스레드 컨텍스트, I/O 관리, 데이터 버퍼, 가상 메모리 관리, 캐시 관리, IRP 처리 등 드라이버 개발에 필요한 이론적인 기초를 다진다. 9~12장은 이 이론을 바탕으로 실제 파일 시스템 필터 드라이버 예제를 소개한다.


정보제공 : Aladin

저자소개

이병오(지은이)

1999년 소프트프로텍에 입사하면서 Windows 커널 프로그래밍을 접하게 되었다. USB 디바이스 드라이버 제작을 시작으로 DRM 업체인 파수닷컴에서 다수의 FSFD를 개발했다. 현재 드라이버 개발 전문업체인 하이브테크를 운영하고 있다.

정보제공 : Aladin

목차


목차
01 파일 시스템 드라이버에 대해서
 Section 01 Windows 시스템의 구조 = 22
  참고 : 시스템 보호 문제 = 23
  참고 : 드라이버의 분류 기준 = 24
  참고 : WDM 드라이버 = 27
 Section 02 파일 시스템 드라이버 = 28
  1. 파일 시스템 드라이버의 특징 = 28
   참고 : 파일 시스템과 파일 시스템 드라이버 = 28
   참고 : 볼륨에 할당된 상징적인 이름 찾기 = 31
  2. 파일 시스템 드라이버의 기능 = 32
  3. 파일 시스템 드라이버의 종류 = 32
  4. Windows 2000 파일 시스템의 종류 = 37
   참고 : Windows 2000에서 지원하는 파일 시스템 = 40
 Section 03 필터 드라이버 = 42
  1. 필터 드라이버란 무엇인가? = 42
   참고 : 데이터 보호 = 42
   참고 : 모니터링 툴 제공 사이트 = 44
  2. 어떻게 IRP를 가로채는가? = 44
   참고 : 필터 드라이버라는 용어의 사용에 관해 = 45
   참고 : 파일 시스템 필터 드라이버가 중요한 이유 = 47
02 드라이버 동기화 메커니즘
 Section 01 스핀 록 = 50
  1. 데드록 = 52
  2. 데드록을 피하는 방법 = 53
   참고 : 데드록을 확인하는 방법 = 53
  3. 스핀 록의 사용 규칙 = 54
   참고 : 페이징이 가능한 데이터와 페이징이 불가능한 데이터 = 55
  4. 스핀 록의 종류 = 56
 Section 02 디스패처 오브젝트 = 63
  1. 이벤트 오브젝트 = 65
  2. 뮤텍스 오브젝트 = 70
  3. 세마포어 오브젝트 = 74
  4. 타이머 오브젝트 = 76
 Section 03 리소스 오브젝트 = 78
  참고 : APC = 83
 Section 04 그 밖의 커널 모드 동기화 오브젝트 = 84
  1. Fast Mutex 오브젝트 = 84
  2. 인터록 연산 = 87
  3. 결론 = 88
03 프로세스와 스레드의 컨텍스트
 Section 01 컨텍스트란 무엇인가? = 92
 Section 02 코드가 실행되는 컨텍스트 = 96
 Section 03 스레드와 프로세스 컨텍스트의 중요성 = 99
 Section 04 오브젝트와 핸들 = 106
04 I/O 관리자
 Section 01 I/O 시스템 = 112
  1. 설계 목표 = 112
  2. I/O 시스템의 구성 요소 = 113
  3. I/O 서브 시스템 = 114
 Section 02 I/O 관리자 = 116
  1. I/O 관리자가 제공하는 기능 = 116
  2. I/O 관리자의 설계 개념 = 117
   참고 : Diskmon = 122
  3. 파일 시스템 드라이버와 I/O 관리자의 통신 = 123
 Section 03 주요 데이터 구조체 = 126
  1. 드라이버 오브젝트 구조체 = 126
   참고 : 파일 시스템 필터 드라이버에서 DriverUnload 함수 호출 = 129
  2. 디바이스 오브젝트 구조체 = 130
   참고 : AttachedDevice 필드 내용 확인하기 = 134
  3. IRP = 136
   참고 : Lookaside 리스트와 Zone 영역에 대해서 = 140
   참고 : I/O를 요청한 스레드의 모드를 알기 위한 방법 = 143
  4. VPB 구조체 = 152
  5. I/O Status Block 구조체 = 155
  6. 파일 오브젝트 구조체 = 156
 Section 04 오브젝트의 선택과 사용 = 161
  참고 : 유용한 디버깅 명령어 DT = 163
05 데이터 버퍼에 대해서
 Section 01 I/O 데이터 버퍼의 종류 = 166
  1. Direct I/O 방식 = 166
   참고 : 데이터 버퍼 방식 설정에 대해서 = 167
   참고 : Next 필드 = 169
  2. Buffered I/O 방식 = 171
  3. Neither I/O 방식 = 175
  4. 데이터 버퍼 방식의 선택 = 176
 Section 02 Device I/O 컨트롤 코드 = 178
  1. 사용자 IOCTL 정의 = 178
  2. CTL_CODE 매크로의 사용 = 183
   참고 : IOCTL 디코더 툴 = 185
06 IRP의 처리 과정
 Section 01 IRP에 대해서 = 188
 Section 02 IRP 처리 방식 = 192
 Section 03 동기적/비동기적 I/O 처리 = 196
  1. 동기적 I/O 처리 방식 = 197
  2. 비동기적 I/O 처리 방식 = 199
 Section 04 IRP의 할당과 생성 = 202
  1. IRP의 할당 = 202
  2. IRP의 생성 = 204
  3. IRP의 완료 루틴 = 208
  4. IRP의 재사용 = 209
  5. IRP를 생성하기 위한 함수 = 210
  5. DPC에 기반을 둔 I/O 요청 = 210
  7. MDL에 기반을 둔 I/O 요청 = 211
  8. 데이터 읽기 요청 = 211
  9. 데이터 저장 요청 = 212
  10. 압축 처리된 I/O 요청 = 213
 Section 05 I/O 완료 처리 과정 = 214
  1. I/O 스택 = 214
  2. IRP 완료를 처리하기 위한 I/O 스택 설정 = 216
  3. I/O 관리자의 역할 = 223
  4. I/O 요청 완료의 과정 = 229
  5. 완료 루틴의 호출 = 233
 Section 06 I/O 요청 취소 = 236
  1. I/O 요청 취소 과정 = 236
  2. I/O 요청 취소 절차 = 237
  3. I/O 요청 취소 시 문제점 = 240
 Section 07 IRP 처리 규칙 = 241
 Section 08 I/O 요청 처리 시 주의 사항 = 246
  참고 : IoSkipCurrentStackLocation()의 동작 과정 = 248
07 가상 메모리 관리자
 Section 01 가상 메모리의 탄생 배경 = 252
  1. 가상 메모리가 왜 유용한가? = 252
  2. 가상 메모리 동작 방식 = 254
 Section 02 가상 메모리 관리자의 기능 = 255
 Section 03 프로세스의 주소 공간 = 256
  1. 사용자 주소 영역과 시스템 주소 영역 = 257
  2. 시스템 주소 공간의 레이아웃 = 259
 Section 04 물리 메모리 관리 = 263
  1. 페이지 프레임과 페이지 프레임 데이터베이스 = 263
  2. 페이지 교체 알고리즘 = 267
  3. 섹션 오브젝트 = 269
 Section 05 가상 주소의 변환 = 270
  1. 페이지 테이블 = 270
  2. 가상 주소를 물리 주소로의 변환 = 273
  3. VAD(Virtual Address Descriptor) = 276
 Section 06 메모리 매핑된 파일의 지원 = 279
  1. PPT와 PPTE = 284
  2. PPT 설계상의 문제점 = 288
  3. 카피 온 라이트 = 289
  4. 섹션과 뷰 = 292
  5. 파일 매핑 구조체 = 293
 Section 07 페이징 = 294
  1. 워킹 세트 = 295
  2. 밸런스 세트 관리자 = 296
  3. Modified Page Writer와 Mapped Page Write = 298
 Section 08 페이지 오류 처리 = 300
  1. MiResolvePageFileFault() 함수 = 301
  2. MiResolveTransitionFault() 함수 = 302
  3. MiDispatchFault() 함수 = 302
  4. MiResolveDemandZeroFault() 함수 = 303
 Section 09 파일 시스템 드라이버와의 통신 = 305
  참고 : 드라이버 내부에서 파일 열기 = 308
08 캐시 관리자
 Section 01 논리적 블록 캐싱과 가상 블록 캐싱 = 312
 Section 02 캐시 관리자가 제공하는 기능 = 314
  1. 시스템 전체에 걸친 캐시 기능 = 314
  2. 미리 읽기 기능 = 314
  3. 지연 쓰기 기능 = 315
 Section 03 캐시 인터페이스 = 316
  1. 복사 인터페이스 = 316
  2. 고정 인터페이스 = 318
  3. MDL 인터페이스 = 319
 Section 04 데이터 읽기/쓰기 캐싱 = 320
  1. 데이터 읽기 동작 = 321
  2. 데이터 저장 동작 = 324
 Section 05 주요 데이터 구조체 = 327
  1. 파일 오브젝트 내의 주요 필드 = 327
   참고 : Sharde Reader와 Exclusive Writer의 차이점 = 330
  2. 캐시 맵 = 333
  3. 버퍼 컨트롤 블록 = 334
 Section 06 파일 크기에 대한 고려 사항 = 335
 Section 07 가상 주소 컨트롤 블록 배열 = 338
 Section 08 공유된 캐시 맵과 독립된 캐시 맵 = 341
 Section 09 캐싱의 사용을 위해 필요한 작업 = 344
  1. Fast I/O = 344
   참고 : Fast I/O 구현 필요성에 대해서 = 346
  2. 파일을 열 때 처리하는 작업 = 347
 Section 10 캐싱의 종료 = 349
  1. I/O 제거 요청 = 349
  2. I/O 종료 요청 = 351
 Section 11 VMM 및 I/O 관리자와의 통신 = 352
  1. VMM과의 통신 = 352
  2. I/O 관리자와의 통신 = 354
 Section 12 미리 읽기 기능 = 355
 Section 13 지연 쓰기 기능 = 358
09 드라이버 작성 필수 예제 Filemon
 Section 01 드라이버 개발 절차 = 362
  1. 개발 내용 분석 = 362
  2. 자료 수집 = 353
  3. 관련 지식 습득 = 364
   참고 : 드라이버 개발 시 하드웨어 스펙 점검은 필수! = 366
  4. 샘플 프로그램 분석 = 366
  5. 전체 구성도 작성 = 368
  6. 전체 흐름도 작성 = 368
  7. 세부 순서도 작성 = 369
  8. 코딩과 디버깅 = 369
   참고 : 소스를 주시면 안 될까요? = 370
  9. 작업 일지 작성 = 371
 Section 02 Filemon 예제 분석 = 372
  1. Filemon의 전체 구조 = 373
  2. 주요 구조체 설명 = 375
  3. 주요 함수 설명 = 380
Special Page : 좋은 드라이버 개발자를 위한 제언 = 385
  1. 프로젝트와 관련된 지식을 습득하라
  2. 문서를 작성하는 것은 기본
  3. 전문가가 되라
10 파일 액세스 제어용 드라이버 개발하기
 Section 01 드라이버의 개발 절차 = 394
  1. 관련 자료 수집 = 394
  2. 주요 기능 정리 = 396
  3. 새로운 구조체 생성 = 396
  4. 전체 구성도 설계 = 397
   참고 : SecuPF에 대해서 = 398
  5. 기본 흐름도 설계 = 399
   참고 : 필자가 개발한 드라이버의 기본 구조 = 400
  6. 세부 순서도 작성 = 402
 Section 02 SecuPF 함수 = 404
  1. DriverEntry() 함수 = 404
   참고 : 왜 Fast I/O 디스패치 루틴을 등록해야 하는가? = 410
  2. 기본 함수들(Create, Close, Unload 함수) = 414
  3. 애플리케이션과 통신 = 419
  4. 볼륨 후킹 = 425
  5. Fast I/O 함수들 = 433
  6. 파일의 전체 경로 얻기 = 435
  7. 폴더 내의 파일 접근을 제어하는 함수 = 443
 Section 03 SecuPF 드라이버 개선법 = 450
11 실시간 암복호화
 Section 01 SecuEFS 드라이버란? = 456
 Section 02 드라이버 개발 절차 = 457
  1. 기본 개념 = 457
  2. 관련 자료 수집 = 463
  3. 주요 기능 정리 = 464
  4. 구조체 정보 변경 = 465
  5. 전체 구성도 설계 = 467
  6. 기본 흐름도 = 469
  7. 세부 순서도 설계 = 474
 Section 03 실시간 암복호화 드라이버의 동작 = 477
  1. DriverEntry() 함수 = 477
   참고 : 초기 SecuEFS 버전과 다른 점 = 479
  2. SecuEFSDeviceRoutine() 함수 = 480
  3. SecuEFSFastloDeviceControl() 함수 = 481
  4. SecuEFSHookRoutine() 함수 = 483
  5. SecuEFSHookDone() = 492
   참고 : 과연 마지막 IRP_MJ_CLOSE는 호출되는가? = 496
 Section 04 SecuEFS 드라이버의 개선점 = 500
12 폴더 숨기기 예제
 Section 01 SecuHF 드라이버의 개요 = 504
  1. IRP_MN_QUERY_DIRECTORY = 505
  2. IRP_MN_NOTIFY_CHANGE_DIRECTORY = 508
 Section 02 드라이버 개발 절차 = 510
  1. 관련 자료 수집 = 510
  2. 주요 기능 정리 = 511
  3. 구조체 정의 = 512
  4. 전체 구성도 설계 = 514
  5. 전체 흐름도 작성 = 515
  6. 세부 순서도 작성 = 519
 Section 03 폴더 숨김 드라이버의 내부 코드 = 522
  1. DriverEntry() 함수 = 522
  2. SecuHFFast1oDeviceControl() 함수 = 523
  3. 폴더 숨기기 절차 = 529
 Section 04 SecuHF 드라이버의 개선점 = 537
Appendix(부록)
 Appendix A 디바이스 드라이버 컴파일하기 = 540
 Appendix B 파일 시스템 필터 드라이버 작성 시 주의할 점 = 561
 Appendix C 시스템 부팅 절차 = 575
 Appendix D Attach 함수 = 584
찾아보기 = 592


관련분야 신착자료

Harvard Business Review (2025)