윈도우 디바이스 드라이버 청강문화산업대 컴퓨터정보과 이 봉 석 교수.

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

제주특별자치도교육청. 목 차 일상생활 속에서의 정보보안 안전한 컴퓨터 사용  보안업데이트 자동설정  가짜 백신 프로그램 주의  믿을 수 있는 웹사이트만 접속  자동 로그인 기능 사용 안함  사용 후 반드시 로그아웃 확인 
Wireless Mobile Resource Management 1. 시스템 개요 2. 시스템 소개 3. 시스템 Back-up PLAN 4. 시스템 주요 Reference C.O.N.T.E.N.T.S.
Universal Plug And Play 를 이용한 홈 네트워크의 구현 게임 & 멀티미디어학과 전영균.
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
1. 회개와 영접 / 말씀구절 : 시편 51 편 10 절 “ 하나님이여 내 속에 정한 마음을 창조하시고 내 안에 정직한 영을 새롭게 하소서 ” 기도제목 / 이번 주간 말씀을 기억하며 살게 하소서 " 정의의 깃발을 들 때입니다.“
21C 멀티미디어 제 2 장 멀티미디어 컴퓨터와 주변장치 PC 의 종류  PC 의 종류 CPU 레지스터의 크기에 따라 16bit, 32bit, 64bit … 크기와 용도에 따라 Desktop pc, notebook pc, palm pc …
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
지하철 안내 앱 소개 제작자 : 손성준 P.S 이 사진은 내용과 관계없음을 명백히 알립니다.( 솔직히 전기동차라는 공통점이 있긴 하지만 ) 그리고 본인이 촬영하였음을 알립니다.
1. Drive A, Drive B 표준 CMOS 설정 화면에서는 하드디스크 드라이브의 특성 외에 플로피디스크 드라이브도 설정해야 합니다. PC에서 FDD를 2개까지 사용할 수 있다. 표준 CMOS  설정 화면의 Drive A와 Drive B 항목에서는 플로피디스크.
시스템 운영계획 OS 설치 및 드라이버 설치 패치 및 업그레이드 보안설정
2.1 컴퓨터 시스템의 구성 2.2 컴퓨터 시스템의 정보 표현 2.3 중앙처리장치 2.4 저장장치 2.5 컴퓨터 주변기기
Chapter 1. 운영체제의 개요 이태호.
랜카드 LAN Card : NIC -유저의 데이터를 케이블을 통해 스위치, 라우터 등으로 전달.
한국hp rx1620 서버 표준 제안서 HP Korea/TSG/Presales
Accton Network Adapter
전산기기 BMT 표준사양서.
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
IBM System x3400 표준 제안서 Your Department Your name
바이오메트릭스(Biometrics).
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 2.1 Hardware Version : 2.0
제 2장 컴퓨터 구조.
BUS 설명서 (PC BUS, SYSTEM BUS)
IT R&D Global Leader Finger Motion 인식 SoC ETRI Technology Marketing
사업 목적 사업 개요 세부 내용 운영 시스템 사업 전망 추진 일정 수익 모델 옵션 사항 협력 회사 2p 3p 8p 14p 20p 23p 26p 27p 28p.
최저가낙찰제의 입찰금액 적정성 심사 시 절감사유서 작성·평가 가이드라인 설명회 2008년 7월 22일 (화)
목 차 Chapter 1 컴퓨터와 프로그램 Chapter 2 프로그래밍과 운영체제
(목) 초등 ICT 교육 방법론 2013년 봄학기 허 민 오
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 1.1 Hardware Version : 1.0
제7장 버스와 입출력.
컴퓨터 하드웨어 설치(1) PC 성능을 결정하는 핵심 부품 가이드 내게 맞는 보조 부품 & 모니터 선택하기.
삼성전자 사외업무지원시스템 사용자 매뉴얼 v4.1.
ORACLE M10 Domain구성 유니원아이앤씨(주).
네트워크 프로그래밍 <네트워크 주문 프로그램 V1.00 >
IBM System x3400 표준 제안서 Your Department Your name
Dell PowerEdge T20 파트너 프레젠테이션
컴퓨터 기초 상식 하드 웨어.
McGraw-Hill Technology Education
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
COMNSO BACKUOP 1. Comnso backup 이란? P 1 2. Comnso backup.
장 비 사 양 서 제품특징 제품사양 브랜드 KEVIC 모 델 CM2717G 품 명 TOUCH AV CONTROLLER
터치 모니터관련 지식 팁 Usb장치 인식 실패 원인과 해결책.
The next generation Windows-based Terminal
컴퓨터 구조.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
Setup Oracle VirtualBox For Penetration Testing 명지대학교 홍석원
Chapter 10. Interrupt.
Chapter 7. Pentium Processor
1. Embedded System의 이해.
컴퓨터 하드웨어 설치(2) PC 조립을 위한 준비물 알아보기 본격적으로 PC 조립하기.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
Sensor EDA 소개서
공인인증서 신청 및 발급 제일 먼저 은행에 직접 방문하여 인터넷뱅킹 신청.
여행자 보험 가입 시,기내용 목베게+투어팁스 무료맵북 증정
Ch 6. Initialization and Cleanup Routines
중앙대 원격교육원 범용공인인증서 홈페이지 등록 방법 .
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
Access Grid Environment Construction
국제의료관광 관련 법, 제도.
Windows7 – 글꼴, 시스템, 장치관리자, 전원옵션
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
제16강 입출력시스템 1.
2015년 2학년 1반.
성경퀴즈 여호수아1장 3장 복습게임.
2006학년도 교육대학원 신입생 오리엔테이션 건양대학교 교육대학원에 오신걸 환영합니다..
제02장 컴퓨터 개요.
회계 교육자료 재경부.
Presentation transcript:

윈도우 디바이스 드라이버 청강문화산업대 컴퓨터정보과 이 봉 석 교수

Chapter 2. 세상에서 가장 간단한 디바이스드라이버 작성하기

문맥의 의미 윈도우의 소프트웨어모듈활용에 대한 대전제 “재활용할 수 있는 소프트웨어 모듈은 반드시 재활용한다” 문맥이란 CONTEXT 를 의미한다 “코드(Code)는 공유하고 데이터(Data)는 각각 사용하는 목적에 맞도록 사용하게 하기 위하여 이를 관리하기 위한 핸들 혹은 구분자역할을 담당한다”

DEVICE_OBJECT와 DeviceExtension

DeviceExtension의 응용 Device Object(A:) Device Extension Device Object(B:) IOPort = XXX Controller Context ControllerContext

SIMPLE 드라이버와 구성파일

드라이버생성을 위한 환경창열기

환경창의 환경변수정의

환경창에서 드라이버 빌드하기

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치작업

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

드라이버설치결과 확인

Chapter 4. 디바이스 스택 (Device Stack)

버스구조의 추상적인 모습 Mouse CPU MEMORY Root Hub USB Host Network Card PCI BUS PCMCIA Controller PCI Bridge MEMORY PCI BUS Network Card USB Host Root Hub Mouse PCI BUS는 USB Host Controller 를 구동시킨다 USB Host Controller는 Root Hub를 구동시킨다 Root Hub는 연결된 Mouse 를 구동시킨다

USB Host Controller와 RootHub PDO Root Hub PDO Root Hub Root Hub USB Host Controller Driver(DriverObject) USB Host Controller USB Host Controller FDO

USB Host Controller와 RootHub PDO FDO Root Hub PCI Bus Network Card Audio Chip IDE Controller PCMCIA Controller DeviceStack

장치관리자의 연결순서별 보기 307-00 ACPI 다중 프로세서 PC Microsoft ACPI- Compliant System PCI 버스 Intel® 82801G … USB Host Controller USB 루트 허브 USB 휴먼 인터페이스 장치 HID 규격 마우스

디바이스스택과 연결순서별 보기의 비교 307-00 ACPI 다중 프로세서 PC Microsoft ACPI- 디바이스스택과 연결순서별 보기의 비교 PCI PDO 307-00 ACPI 다중 프로세서 PC Microsoft ACPI- Compliant System PCI 버스 Intel® 82801G … USB Host Controller USB 루트 허브 USB 휴먼 인터페이스 장치 HID 규격 마우스 PCI FDO UHost PDO UHost FDO USBHUB PDO USBHUB FDO USBHID PDO USBHID FDO HIDMOUSE PDO HIDMOUSE FDO HIDMOUSE FiDO PCI.SYS USBUHCI.SYS USBHUB.SYS HIDUSB.SYS ACPI.SYS MOUHID.SYS MOUCLASS.SYS

Microsoft UAA BusDriver For High Definition Audio PCI버스를 부모로 하는 모습 PCI PDO 307-00 ACPI 다중 프로세서 PC Microsoft ACPI- Compliant System PCI 버스 Intel® 82801G … USB Host Controller PCI FDO UHost PDO UHost FDO PCI.SYS USBUHCI.SYS ACPI.SYS Microsoft UAA BusDriver For High Definition Audio UAA BusDriver PDO UAA BusDriver FDO HDAUDBUS.SYS

“모뎀”장치와 장치인스턴스ID

서비스와 장치하위필터

“모뎀”과 디바이스스택 MODEM.SYS TOSHIBA Software Modem AMR FDO TOSHIBA Software Modem AMR FiDO TOSHIBASOFTMODEM.SYS TOSHIBA Software Modem AMR PDO PCI.SYS

“모뎀”과 시스템레지스트리 클래스상위필터

“모뎀”과 시스템레지스트리 클래스하위필터들

“다른종류”의 디바이스스택과 구성요소 제공되는 장치상위필터 ???서비스드라이버 “다른종류”의 디바이스스택과 구성요소 BusDriver Physical Device Object(PDO) Class LowerFilter Device Object(FiDO) PxHelp20 서비스드라이버 BsStor서비스드라이버 PFC서비스드라이버 기능층 Functional Device Object(FDO) ???서비스드라이버 설치파일에 의해서 제공되는 장치하위필터 제공되는 장치상위필터

“모뎀”과 시스템레지스트리 설치파일에서 기능층서비스드라이버를 제공하지 않는 경우에 사용되는 디폴트 서비스드라이버가 명시되어 있다

“PS/2 키보드”과 디바이스스택 KBDCLASS서비스드라이버 Class UpperFilter Device Object(FiDO) KBDCLASS서비스드라이버 기능층 Functional Device Object(FDO) i8042prt서비스드라이버 BusDriver Physical Device Object(PDO) ACPI서비스드라이버

“PS/2 키보드”과 디바이스스택 BusDriver Physical Device Object(PDO) 기능층 Functional Device Object(FDO) i8042prt서비스드라이버 Class UpperFilter Device Object(FiDO) ACPI서비스드라이버 KBDCLASS서비스드라이버 StackSize = 3 StackSize = 6 StackSize = 7 AttachedDevice NULL FDO->StackSize값이 PDO->StackSize값보다 크기만 하면 된다. 그 차이값은 중요하지 않다!

“PS/2 키보드”발견과 디바이스스택구성순서 BusDriver Physical Device Object(PDO) ACPI서비스드라이버 StackSize = 1 AttachedDevice NULL ACPI 버스 PS/2 컨트롤러(주포트)발견 ACPI버스드라이버 PDO 생성 PNP관리자(OS) PNP관리자에게 PDO 전달 시스템레지스트리(하드웨어키) 레지스트리정보획득 1 2 3 4 디바이스스택을 구성하기 위한 상위드라이버호출준비

“PS/2 키보드”발견과 디바이스스택구성순서 PNP관리자(OS) 디바이스스택구성을 위한 드라이버호출순서결정 시스템레지스트리 기능층서비스드라이버(i8042prt)를 먼저 호출해야한다! 클래스상위필터서비스드라이버(KBDCLASS)를 그다음 호출해야 한다! I8042prt서비스드라이버’s AddDevice()함수 KBDCLASS서비스드라이버’s AddDevice()함수 1 먼저 호출한뒤, 2 그다음 호출한다

“PS/2 키보드”발견과 디바이스스택구성순서 PNP관리자(OS) I8042prt서비스드라이버’s AddDevice()함수 BusDriver Physical Device Object(PDO) ACPI서비스드라이버 StackSize = 1 AttachedDevice 기능층 Functional Device Object(FDO) i8042prt서비스드라이버 StackSize = 2 DeviceObject생성 DeviceObject연결 NULL StackSize값 변경 1 2 3

“PS/2 키보드”발견과 디바이스스택구성순서 PNP관리자(OS) KBDCLASS서비스드라이버’s AddDevice()함수 BusDriver Physical Device Object(PDO) ACPI서비스드라이버 StackSize = 1 AttachedDevice 기능층 Functional Device Object(FDO) i8042prt서비스드라이버 StackSize = 2 DeviceObject생성 1 Class UpperFilter Device Object(FiDO) KBDCLASS서비스드라이버 StackSize = 3 NULL FDO와의 연결 2 3 StackSize 변경작업

SIMPLE 장치를 위한 디바이스스택 SIMPLE Functional Device Object(FDO) BusDriver Physical Device Object(PDO)

SIMPLE 디바이스스택 확인작업 PDO FDO StackSize

키보드 디바이스스택 확인작업 ACPI버스드라이버 PDO FDO FiDO(Class)

디스크 디바이스스택 확인작업 버스드라이버 PDO 주서비스 FDO 클래스상위필터 FiDO

디스크 디바이스스택 확인작업 ATAPI버스드라이버 PDO ??? FDO FiDO

ACPI가 개입된 디바이스스택의 특수성 NULL PARTMGR 서비스드라이버가 생성한 FiDO DISK 서비스드라이버가 생성한 FDO NULL ACPI 서비스드라이버가 생성한 FiDO ACPI 서비스드라이버가 생성한 FiDO ATAPI 버스드라이버가 생성한 PDO ATAPI 버스드라이버가 생성한 PDO 생성된 디스크드라이브DeviceStack 해제된 디스크드라이브DeviceStack