FSTWikiWindows Driver Model
Login:
Password:
Join
E D R S I H P RSS
FrontPage|FindPage|TitleIndex|RecentChanges

Windows Driver Model #

-- 김도집 2005-09-21 14:50:34

Contents

1 Windows Driver Model
1.1 개요
1.1.1 위키 내 관련 문서
1.2 개발 환경
1.3 기타 유용한 도구들
1.4 ?WinDbg
1.4.1 ?VMWare + ?WinDbg
1.4.2 ?WinDbg 사용
1.5 드라이버 스튜디오
1.6 관련 서적
1.6.1 WDM 서적
1.6.2 윈도우 내부 구조 이해
1.7 유용한 온라인 사이트

1.1 개요 #

마이크로소프트 윈도우즈 운영체제(특히 윈도우 2000 이후 버전)에서 디바이스 드라이버를 작성하는 방법에 대한 대략적인 내용을 다룬다.

1.1.1 위키 내 관련 문서 #

1.2 개발 환경 #

WDM를 개발하기 위해서는 다음과 같은 것들이 필요하다:
DDK디바이스 드라이버를 개발하기 위한 개발 도구 및 API들을 제공한다 (필수)
VC++ 6.0디바이스 드라이버를 컴파일 하기 위하여 필요하다 (필수)
Platform SDK기타 유용한 도구 및 API를 제공한다 (선택)
Compuware Driver Studio드라이버 개발을 위한 통합 환경을 제공한다. (선택, 상용)


1.3 기타 유용한 도구들 #

?WinDbg윈도우 디버거
?WinObj디바이스명과 심볼릭 링크 디바이스 명을 확인할 수 있다
?OSRLoader디바이스 파일을 적제/해제할 수 있는 도구이다


1.4 ?WinDbg #

?WinDbg는 마이크로소프트 웹사이트에서 다운 받을 수 있다.

1.4.1 ?VMWare + ?WinDbg #

?WinDbg는 ?VMWare의 "named pipe"라는 것을 이용하여 가상 머신과 통신할 수 있다.

  1. ?VMWare의 가상 머신으로 윈도우를 설치한다.
  2. ?VMWare의 "Virtual Machine Setting"에서 "Hardware"탭을 선택하고 Serial Port를 추가하기 위하여 "Add" 버튼을 클릭한다.
  3. "Serial Port"를 선택한다.
  4. Serial Port Type에서 "Output to named pipe"를 선택한다.
  5. Specify Named Pipe에서 다음과 같이 입력한다.
    \\.\pipe\vm_com
    This end is the server
    This other end is a virtual machine
    
    Device status의 "Connect at power on"의 체크 박스를 선택한다.
  6. 이제 새 시리얼 포트가 하나 만들어졌다. 만들어진 시리얼 포트를 선택하면 "Hardware" 탭에 I/O mode에 "Yeild CPU on poll"라는 체크 박스를 선택한다.



  7. 이제 가상 머신의 윈도우를 부팅한다.
  8. 가상 머신의 C:\boot.ini를 다음과 같이 추가한다.
    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000
     Debug" /fastdetect /DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200
    
    /!\ 위 내용은 한 줄에 모두 써야 하는 것이다.
  9. ?VMWare의 가상 머신을 시작 한다.



  10. 이후 호스트 컴퓨터에 설치된 ?WinDbg의 단축 아이콘의 속성을 연다.
  11. 등록 정보창의 "바로가기"탭의 대상에서 다음과 같이 수정한다.
    "windbg.exe" -k com:pipe,port=\\.\pipe\vm_com
    
  12. ?WinDbg를 실행한다.
  13. 이제 가상 머신의 윈도우를 시작하면 된다.

1.4.2 ?WinDbg 사용 #

?WinDbg를 실행한 후 처음으로 설정해야 하는 것들이 있다. 그중 하나가 심볼을 등록하는 것이다.

File->Symbol File Path.. 를 선택한 후 다음을 입력한다:
srv*C:\WinDbgSymbols*http://msdl.microsoft.com/download/symbols 


/!\ 위의 내용 중 C:\?WinDbgSymbols는 사용자가 직접 디렉토리를 만들어주어야 한다.


브레이크 설정하기

Ctrl+Break 키를 누르면 브레이크가 걸린다.


심볼 경로 확인하기

브레이크를 건 상태에서 kd> 프롬프트에 .sympath를 입력한다.


심볼이 정상적으로 로드되었는지 확인하기

kd> 프롬프트에서 lm를 입력한다.


특정 심볼 로드하기

kd> 프롬프트에서 ld 명령을 이용한다. hal 심볼을 로드하고자 한다면 ld hal이라고 입력한다.


모듈에 포함된 심볼 확인하기

kd> 프롬프트에서 x 명령을 이용한다. 예를 들어 NTDLL에 포함된 심볼을 확인하고자 한다면 x NTDLL!라고 입력한다.


브레이크 모드에서 빠져나오기

kd> 프롬프트에서 g를 입력한다.

1.5 드라이버 스튜디오 #

Compuware의 driver studio는 상용 도구이다. 이를 이용하여 드라이버를 쉽게 개발할 수 있으며 매우 강력하고 유용한 도구들을 제공한다.

1.6 관련 서적 #

다음은 WDM과 관련하여 도움이 되는 서적들을 나열한다.

1.6.1 WDM 서적 #

[ISBN-8989975069][ISBN-8980545290][ISBN-8956741476]

1.6.2 윈도우 내부 구조 이해 #

[ISBN-0735619174][ISBN-0735610215]


Inside Microsoft Windows 2000 3/E는 절판 된 책으로 Windows Internals 4/E가 그 후속 판이라고 보면 된다.

1.7 유용한 온라인 사이트 #


last modified 2005-11-30 08:57:04
EditText|FindPage|DeletePage|LikePages Valid XHTML 1.0! Valid CSS! powered by MoniWiki
0.0333 sec