메모장 입니다2

Windows] 드라이버 개발 - 1) 정의, 개발 킷 종류 본문

Study/Programming

Windows] 드라이버 개발 - 1) 정의, 개발 킷 종류

Wooum@n 2017. 2. 23. 23:39

0.정의


 -드라이버는 두 대상(OS, 프로그램, 장치 등) 간의 통신을 돕는 역할을 한다.

 -드라이버 종류

1)장치(?) 드라이버

*응용프로그램(OS 함수 호출) -> OS(드라이버 함수 호출) -> 장치 I/O



2)필터/기능 드라이버

>다수의 드라이버가 I/O를 요청할 경우,

아래처럼 차례로 스텍에 쌓인다.

>마지막 참가자(Driver 3)는 기능드라이버가 되고

나머지는 필터드라이버가 된다.

>>기능 드라이버: 장치와 직접 통신

>>필터 드라이버: 요청을 전달하기만 함,

그 외 요청이 제대로 이루어지는지 검사하는 기능도 수행.



3)소프트웨어 드라이버: OS의 핵심 데이터에 접근할 때 사용,

 커널모드로 코드가 실행되어 보호된 데이터에 접근 가능.


*유저모드에서 실행되는 소프트웨어 드라이버도 있다고 한다..



4)버스 드라이버: 나중에 필요할 때 정리.




1.개발환경


 -윈도우 드라이버 모델은 다양하기 때문에 구현하려는 드라이버에 따라 개발방법도 달라진다.

ex) 네트워크 디바이스 드라이버 -> NDIS(Network Driver Interface Specification)

 -개발킷 종류

1)DDK(Device Driver Development Kit): Vista 이전 버전의 드라이버 개발 킷.  

>개발만 지원


2)WDK(Windows Driver Kit): DDK의 업그레이드 된 버전

>개발 + 테스트 + 인증 + 디버깅 


3)WLK(Windows Logo Kit): 윈도우 로고 인증을 위한 테스트 툴모음.

>WDK에 포함됨.


4)IFS(Installable File System): 윈도우 커널 모드 파일 시스템과 파일 시스템 필터 드라이버를 개발할 수 있음.


 -설치 순서

Visual Studio -> WDK -> SDK

*WDK와 SDK의 버전이 같아야 함


출처:MSDN