서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
윈도우 파일 시스템
저자 : 이병오
출판사 : 성안당
출판년 : 2006
정가 : 29000, ISBN : 8955981988
책소개
윈도우 파일 시스템의 구조와 드라이버 제작 과정을 파헤친다!
운영체제의 내부 구조와 함께 파일 시스템 필터 드라이버의 구조, 제작과정을 자세히 소개한 책이다. 국내 최대의 드라이버 개발자 커뮤니티인 KOSR의 개발 노하우를 엿볼 수 있으며, 초보자를 위한 드라이버 제작 예제뿐만 아니라 PC 보안과 DRM에 적용되는 파일 시스템 필터 드라이버 제작 등 실무 기술이 담겨 있다.
목차
01장 파일 시스템 드라이버에 대해서
Section01. Windows 시스템의 구조
Section02. 파일 시스템 드라이버
1. 파일 시스템 드라이버의 특징
2. 파일 시스템 드라이버의 기능
3. 파일 시스템 드라이버의 종류
4. Windows 2000 파일 시스템의 종류
Section03. 필터 드라이버
1. 필터 드라이버란 무엇인가?
2. 어떻게 IRP를 가로채는가?
02장 드라이버 동기화 메커니즘
Section 01. 스핀 록
1. 데드록
2. 데드록을 피하는 방법
3. 스핀 록의 사용 규칙
4. 스핀 록의 종류
Section 02. 디스패처 오브젝트
1. 이벤트 오브젝트
2. 뮤텍스 오브젝트
3. 세마포어 오브젝트
4. 타이머 오브젝트
Section 03. 리소스 오브젝트
Section 04. 그 밖의 커널 모드 동기화 오브젝트
1. Fast Mutex 오브젝트
2. 인터록 연산
3. 결론
03장 프로세스와 스레드의 컨텍스트
Section 01. 컨텍스트란 무엇인가?
Section 02. 코드가 실행되는 컨텍스트
Section 03. 스레드와 프로세스 컨텍스트의 중요성
Section 04. 오브젝트와 핸들
04장 I/O 관리자
Section 01. I/O 시스템
1. 설계 목표
2. I/O 시스템의 구성 요소
3. I/O 서브 시스템
Section 02. I/O 관리자
1. I/O 관리자가 제공하는 기능
2. I/O 관리자의 설계 개념
3. 파일 시스템 드라이버와 I/O 관리자의 통신
Section 03. 주요 데이터 구조체
1. 드라이버 오브젝트 구조체
2. 디바이스 오브젝트 구조체
3. IRP
4. VPB 구조체
5. I/O Status Block 구조체
6. 파일 오브젝트 구조체
Section 04. 오브젝트의 선택과 사용
05장 데이터 버퍼에 대해서
Section 01. I/O 데이터 버퍼의 종류
1. Direct I/O 방식
2. Buffered I/O 방식
3. Neither I/O 방식
4. 데이터 버퍼 방식의 선택
Section 02. Device I/O 컨트롤 코드
1. 사용자 IOCTL 정의
2. CTL_CODE 매크로의 사용
06장 IRP의 처리 과정
Section 01. IRP에 대해서
Section 02. IRP 처리 방식
Section 03. 동기적/비동기적 I/O 처리
1. 동기적 I/O 처리 방식
2. 비동기적 I/O 처리 방식
Section 04. IRP의 할당과 생성
1. IRP의 할당
2. IRP의 생성
3. IRP의 완료 루틴
4. IRP의 재사용
5. IRP를 생성하기 위한 함수
6. DPC에 기반을 둔 I/O 요청
7. MDL에 기반을 둔 I/O 요청
8. 데이터 읽기 요청
9. 데이터 저장 요청
10. 압축 처리된 I/O 요청
Section 05. I/O 완료 처리 과정
1. I/O 스택
2. IRP 완료를 처리하기 위한 I/O 스택 설정
3. I/O 관리자의 역할
4. I/O 요청 완료의 과정
5. 완료 루틴의 호출
Section 06. I/O 요청 취소
1. I/O 요청 취소 과정
2. I/O 요청 취소 절차
3. I/O 요청 취소 시 문제점
Section 07. IRP 처리 규칙
Section 08. I/O 요청 처리 시 주의 사항
07장 가상 메모리 관리자
Section 01. 가상 메모리의 탄생 배경
1. 가상 메모리가 왜 유용한가?
2. 가상 메모리 동작 방식
Section 02. 가상 메모리 관리자의 기능
Section 03. 프로세스의 주소 공간
1. 사용자 주소 영역과 시스템 주소 영역
2. 시스템 주소 공간의 레이아웃
Section 04. 물리 메모리 관리
1. 페이지 프레임과 페이지 프레임 데이터베이스
2. 페이지 교체 알고리즘
3. 섹션 오브젝트
Section 05. 가상 주소의 변환
1. 페이지 테이블
2. 가상 주소를 물리 주소로의 변환
3. VAD(Virtual Address Descriptor)
Section 06. 메모리 매핑된 파일의 지원
1. PPT와 PPTE
2. PPT 설계상의 문제점
3. 카피 온 라이트
4. 섹션과 뷰
5. 파일 매핑 구조체
Section 07. 페이징
1. 워킹 세트
2. 밸런스 세트 관리자
3. Modified Page Writer와 Mapped Page Write
Section 08. 페이지 오류 처리
1. MiResolvePageFileFault() 함수
2. MiResolveTransitionFault() 함수
3. MiDispatchFault() 함수
4. MiResolveDemandZeroFault() 함수
Section 09. 파일 시스템 드라이버와의 통신
08장 캐시 관리자
Section 01. 논리적 블록 캐싱과 가상 블록 캐싱
Section 02. 캐시 관리자가 제공하는 기능
1. 시스템 전체에 걸친 캐시 기능
2. 미리 읽기 기능
3. 지연 쓰기 기능
Section 03. 캐시 인터페이스
1. 복사 인터페이스
2. 고정 인터페이스
3. MDL 인터페이스
Section 04. 데이터 읽기/쓰기 캐싱
1. 데이터 읽기 동작
2. 데이터 저장 동작
Section 05. 주요 데이터 구조체
1. 파일 오브젝트 내의 주요 필드
2. 캐시 맵
3. 버퍼 컨트롤 블록
Section 06. 파일 크기에 대한 고려 사항
Section 07. 가상 주소 컨트롤 블록 배열
Section 08. 공유된 캐시 맵과 독립된 캐시 맵
Section 09. 캐싱의 사용을 위해 필요한 작업
1. Fast I/O
2. 파일을 열 때 처리하는 작업
Section 10. 캐싱의 종료
1. I/O 제거 요청
2. I/O 종료 요청
Section 11. VMM 및 I/O 관리자와의 통신
1. VMM과의 통신
2. I/O 관리자와의 통신
Section 12. 미리 읽기 기능
Section 13. 지연 쓰기 기능
09장 드라이버 작성 필수 예제 Filemon
Section 01. 드라이버 개발 절차
1. 개발 내용 분석
2. 자료 수집
3. 관련 지식 습득
4. 샘플 프로그램 분석
5. 전체 구성도 작성
6. 전체 흐름도 작성
7. 세부 순서도 작성
8. 코딩과 디버깅
9. 작업 일지 작성
Section 02. Filemon 예제 분석
1. Filemon의 전체 구조
2. 주요 구조체 설명
3. 주요 함수 설명
| Special Page | 좋은 드라이버 개발자를 위한 제언
1. 프로젝트와 관련된 지식을 습득하라
2. 문서를 작성하는 것은 기본
3. 전문가가 되라
10장 파일 액세스 제어용 드라이버 개발하기
Section 01. 드라이버의 개발 절차
1. 관련 자료 수집
2. 주요 기능 정리
3. 새로운 구조체 생성
4. 전체 구성도 설계
5. 기본 흐름도 설계
6. 세부 순서도 작성
Section 02. SecuPF 함수
1. DriverEntry() 함수
2. 기본 함수들(Create, Close, Unload 함수)
3. 애플리케이션과 통신
4. 볼륨 후킹
5. Fast I/O 함수들
6. 파일의 전체 경로 얻기
7. 폴더 내의 파일 접근을 제어하는 함수
Section 03. SecuPF 드라이버 개선법
11장 실시간 암복호화
Section 01. SecuEFS 드라이버란?
Section 02. 드라이버 개발 절차
1. 기본 개념
2. 관련 자료 수집
3. 주요 기능 정리
4. 구조체 정보 변경
5. 전체 구성도 설계
6. 기본 흐름도
7. 세부 순서도 설계
Section 03. 실시간 암복호화 드라이버의 동작
1. DriverEntry() 함수
2. SecuEFSDeviceRoutine() 함수
3. SecuEFSFastIoDeviceControl() 함수
4. SecuEFSHookRoutine() 함수
5. SecuEFSHookDone()
Section 04. SecuEFS 드라이버의 개선점
12장 폴더 숨기기 예제
Section 01. SecuHF 드라이버의 개요
1. IRP_MN_QUERY_DIRECTORY
2. IRP_MN_NOTIFY_CHANGE_DIRECTORY
Section 02. 드라이버 개발 절차
1. 관련 자료 수집
2. 주요 기능 정리
3. 구조체 정의
4. 전체 구성도 설계
5. 전체 흐름도 작성
6. 세부 순서도 작성
Section 03. 폴더 숨김 드라이버의 내부 코드
1. DriverEntry() 함수
2. SecuHFFastIoDeviceControl() 함수
3. 폴더 숨기기 절차
Section 04. SecuHF 드라이버의 개선점
부록
Appendix A. 디바이스 드라이버 컴파일하기
Appendix B. 파일 시스템 필터 드라이버 작성 시 주의할 점
Appendix C. 시스템 부팅 절차
Appendix D. Attach 함수