C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[37636] Re:마우스 디바이스 드라이버에 대해서 프로그래밍 공부를 해보려 합니다만...
김윤동.제라툴 [zeratul] 1583 읽음    2004-10-15 09:56
제라툴입니다.

우선 어떤 것에 대해서 공부할지를 감을 잡는게 좋으 실것 같군요

VxD에 대해서 또는 NT Style 드라이버 또는 WDM 어떤것을 할지를 먼저 공부해 볼지를 첨에 잡는게 가장

중요합니다.

Driver 쪽을 공부하시다 보면 책에서 얻을 수 있는 부분은 극히 한정적 입니다.

특히 Mouse 같은 장치 드라이버는 더욱도 그렇죠.

DDK를 깔아 보시면 아시겠지만 거기에 있는 doc 과 src를 기반으로 공부하셔야 합니다.

기본은 책으로 잡고 나머지는 그냥 맨바닦 헤딩을 해야 될 듯하군요 ㅋ

우선 9x 계열과 2000 계열은 Mouse Event 처리가 조금 다릅니다.

9x 는 VMD Call을 하고 2000은 Mouclass 라는 놈을 이용하죠 .

둘다 윈도를 깔면 자동으로 깔리는 드라이버 들입니다. 물론 이드라이버에 대한 소스도 DDK에 포함 되어 있습니다.

보통 장치 드라이버는 이 두가지를 이용해서 Mouse Event를 처리합니다.

9x 계열은 Vxd로 만들어야 한다는걸 알고 계실 겁니다. 즉 VDD 형태의 드라이버죠

2000 계열의 드라이버는 NT Style로 만드시는게 조금 편합니다.

물론 WDM 으로 하셔도 무방하죠 ㅋ 거의 비슷하거든요

장치 드라이버가 Mouse Event를 사용하기 위해서 가장 많이 쓰는 방법은 ..

우선 두개의 Mouse Service를 이용할 수있게 해주는 드라이버를 만들어 주는거죠

그럼 간단히 non HID USB 마우스라 생각하면

9x 계열에서 VMD Call을 할 수있는 마우스 드라이버를 만듭니다.
NT 계열에서도 역시 Mouclass를 사용할 수있는 드라이버를 만들고 ..

이 두개에 접근할 수있는 USB 드라이버를 WDM으로 만들면 되죠

참고로 말씀드리면 9x 계열에서 의 Mouse 처리를 위한 VMD Call 에는 약간의 버그가 있습니다.
MS 사 홈페이지를 찾아 보시면 아시겠지만 조금 구현이 어렵더군요.

머 그다지 많은 내용을 적지 못해서 죄송하내요. 좀더 많은것은 공부하면서 익히시는 편이 좋을 듯하군요

책 두세권 정도 보면 드라이버에 대해서 어느정도 감이 오실 듯합니다.

참고로 Programming the Microsoft Windows Driver Model 라는 책을 사람들이 많이 추천하지만

그 책 자체 내용이 조금 난해한 부분 들이 있습니다.

처음 공부하시는 것이라면 The Windows 2000 Device Driver Book  라는 책을 추천하고 싶군요

드라이버 책중 비교적 쉽게 써졌습니다.

From Zeratul

+ -

관련 글 리스트
37633 마우스 디바이스 드라이버에 대해서 프로그래밍 공부를 해보려 합니다만... 강의이야기 1139 2004/10/15
37636     Re:마우스 디바이스 드라이버에 대해서 프로그래밍 공부를 해보려 합니다만... 김윤동.제라툴 1583 2004/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.