메뉴 건너뛰기

그외 개발정보


안녕하세요.

말씀하신데로 시도 중인데 의문점이 한가지 생겼습니다.

알려주셨던 내용과 검색을 통해서 다음과같은 사실을 정리 할 수 있었습니다.

1. 마우스에 이벤트를 보내주기 위해선 mouclass callback 함수를 받아와야한다.

2. 아래와 같이 특정레지스트리 주소에 작성해주면 해당 서비스에 마우스콜백함수가 날아온다
\Registry\Machine\Hardware\Devicemap\PointerPort

name : \Device\PointerPort0
value : \Registry\Machine\System\CurrentControlSet\Services\서비스명

3. MajorFunction 에서 IRP_MJ_INTERNAL_DEVICE_CONTROL 메시지를 잡아낸다.

4. IOCTL_INTERNAL_MOUSE_CONNECT 부분에서 접속정보를 얻어낸다.


하지만 아무 메시지가 날아오지 않네요..

제가 생각하고 있는게 틀린점이 있는지요

=============================================

그리고

mouser나 mouclass 말고도 제가 가지고 있는 실제터치스크린 드라이버 소스도있습니다.

기존에서는 controller driver 한 개
mouse control driver 한 개

이렇게 두 개의 드라이버를 만들어놓고
드라이버끼리 통신하는 방법을 사용했습니다.

controller driver에서 mouse control driver를 불러온거죠.

한 개의 드라이버파일로는 불가능한 일인가요

바쁘실텐데 신경써주셔서 감사합니다^^

  • profile
    이크, 쓰고 보니 헷갈릴 내용이 있네요,
    DriverEntry 에서 로드시점을 정하는게 아닌거 아시죠^^?
    Inf 혹은 레지스트리에 내 드라이버의 로드 시점을 정하는 부분을 말씀드린겁니다.
    죄송합니다, 무척 혼돈의 여지가 있을법한 말이 되어버렸네요.
    아래, "피드백" 관련 내용과 말씀 감사합니다^^
    '구리'님도 건강하시길~!

    >귀찮으실지도 모르는데 친절한 답변감사합니다!!
    >로드되는 시점이 있다는 사실은 처음알았네요
    >된다면 부족하지만 피드백달러올게요
    >환절기라 감기환자가 많네요
    >건강챙기셔요
    >
    >
    >>네, 말씀하신대로,
    >>DriverEntry 에서 레지스트리에 기록하여 드라이버가 로드되는 시점을 조절해 보시기 바랍니다.^^'
    >>(너무 빠르면, 레지스트리가 준비되어 있지 않았을 때라- 기록 되지 않을 수도 있습니다. 적확한 시점이...
    >>제일 빠른 순서의 다음 이었던것 같습니다.ㅋ
    >>로드 옵션이 0,1,2,3 이던가요? 1 아니면 2정도 되겠네요.)
    >>
    >>링크해주신 내용은 필터 드라이버와 관련한 코드이더군요.^^' 음... 물론 링크 내용을 토대로 저역시 뭔가 해볼수 있지 않을까 했습니다. 가령, mouclass 드라이버에게 내 드라이버가 완벽히 로드 된후, 콜백함수의 포인터를 요청한다던가 하는... . 그게 가능한지는 DDK mouclass 드라이버 소스를 분석해 봐야 할듯 하네요. ㅋ
    >>
    >>네, 말씀하신대로, 시리얼이냐 USB 냐 하는 것은 중요하지 않습니다.
    >>다만, 수시로 빼고 꽂는 USB 마우스처럼- 그런 장치들을 위한 어떤 방법이 HID 장치제어와 관련해서 뭔가 있지 않을까 해서 말을 덧붙여 보았었습니다.
    >>
    >>그렇게 된다면, 굳이 두개의 드라이버를 만들 필요는 없을테니까요^^ (USB 장치가 꽂히면, 내 드라이버가 로드되고, 그시점에서도 MOUCLASS 드라이버로 부터 콜백함수를 받을 수 있는 것과 같이 말이죠^^)
    >>
    >>이번에도 도움이 되었나 모르겠네요...
    >>쩝... 관련일을 하고 있었다면, 좀더 제대로 내용을 달아 드렸을텐데...;;;
    >>
    >>부디 성공하시길..!^^
    >>
    >>>레지스트리 기록되는 시점이 중요하군요~
    >>>시도를 해봐도 뭔가 부족하네요
    >>>DriverEntry에서 레지를 기록하게했거든요..
    >>>
    >>>마우스디바이스오브젝트주소를 얻어와서
    >>>irp를 날려주는건 어떻게 생각하셔요?
    >>>찾아보니 IoGetDeviceObjectPointer() 이라는 함수가 있더라고요~
    >>>symbol name으로 포인터를 얻어오는 함수입니다.
    >>>http://blog.naver.com/PostView.nhn?blogId=hinghihi&logNo=50008719760
    >>>
    >>>뭔가 제가 여쭤보는게 시리얼이나 usb냐는 안중요한것아닌가요?
    >>>제가 잘못이해하고 있나 싶어서요..
    >>>터치컨트롤러 자체는 usb로 통신하지만(이미 구현됐고)
    >>>마우스를 제어하는 방법에서 말썽이니깐요
    >>>
    >>>건우님덕에 방향을 잡고 일단 탐색중입니다
    >>>감사합니다^^
    >>>
    >>>아참 구글에 이건우라고 검색하니
    >>>첫 번째 검색결과로 뜨시네요...ㅋㅋ!!!
    >>>대단합니다.
    >>>
    >>>
    >>>
    >>>>음, 아래 말씀하신 내용이 맞습니다.
    >>>>다만, 레지스트리에 기록되는 시점이 중요합니다.
    >>>>부팅시 레지스트리 db 가 준비되고,
    >>>>곧바로 정보를 쓸 수 있게끔,
    >>>>Driver 의 로드 시점을 최대한 빠르게 해놓으시면 될
    >>>>것 같습니다.
    >>>>
    >>>>그리고, USB 용 Touch DRIVER 를 작성해 본 경험은 없지만, 드라이버의 개수가 두개로 분리되어 있는 것도 나름 장점이 될 수 있을 것 같습니다.
    >>>>
    >>>>즉, mouse class 드라이버의 포인터를 얻기 위해서는 USB 디바이스가 부착되어 있지 않아도 드라이버가 부팅시 로드되어 마우스 드라이버의 콜백 포인터를 얻어 놓고 있어야 할테고- 이후, USB 디바이스의 부착시 컨트롤 드라이버가 로드되면서 먼저 로드 된 드라이버와 대화하는 방법을 사용할 수 있을 것 같습니다.
    >>>>
    >>>>하지만, 제가 먼저 말씀드린바대로 usb 용으로 touch driver 를 개발한 경험이 없기에, 빠뜨리고 있거나 잘못 알고 있는 정보가 있을 수 있습니다.
    >>>>가령, HID 와 관련한 드라이버들이 어떻게 마우스를 컨트롤 하는지는 저도 정확히 모르겠습니다.^^;
    >>>>관련일에 손을 놓은 터라 좀 멀어져 있습니다. T^T
    >>>>
    >>>>죄송합니다,
    >>>>도움이 되었는지 모르겠네요...^^'
    >>>>
    >>>>
    >>>>
    >>>>
    >>>>>안녕하세요.
    >>>>>
    >>>>>말씀하신데로 시도 중인데 의문점이 한가지 생겼습니다.
    >>>>>
    >>>>>알려주셨던 내용과 검색을 통해서 다음과같은 사실을 정리 할 수 있었습니다.
    >>>>>
    >>>>>1. 마우스에 이벤트를 보내주기 위해선 mouclass callback 함수를 받아와야한다.
    >>>>>
    >>>>>2. 아래와 같이 특정레지스트리 주소에 작성해주면 해당 서비스에 마우스콜백함수가 날아온다
    >>>>>\Registry\Machine\Hardware\Devicemap\PointerPort
    >>>>>
    >>>>>name : \Device\PointerPort0
    >>>>>value : \Registry\Machine\System\CurrentControlSet\Services\서비스명
    >>>>>
    >>>>>3. MajorFunction 에서 IRP_MJ_INTERNAL_DEVICE_CONTROL 메시지를 잡아낸다.
    >>>>>
    >>>>>4. IOCTL_INTERNAL_MOUSE_CONNECT 부분에서 접속정보를 얻어낸다.
    >>>>>
    >>>>>
    >>>>>하지만 아무 메시지가 날아오지 않네요..
    >>>>>
    >>>>>제가 생각하고 있는게 틀린점이 있는지요
    >>>>>
    >>>>>=============================================
    >>>>>
    >>>>>그리고
    >>>>>
    >>>>>mouser나 mouclass 말고도 제가 가지고 있는 실제터치스크린 드라이버 소스도있습니다.
    >>>>>
    >>>>>기존에서는 controller driver 한 개
    >>>>>mouse control driver 한 개
    >>>>>
    >>>>>이렇게 두 개의 드라이버를 만들어놓고
    >>>>>드라이버끼리 통신하는 방법을 사용했습니다.
    >>>>>
    >>>>>controller driver에서 mouse control driver를 불러온거죠.
    >>>>>
    >>>>>한 개의 드라이버파일로는 불가능한 일인가요
    >>>>>
    >>>>>바쁘실텐데 신경써주셔서 감사합니다^^
    >>>>>
    >>>>>
    >>>>
    >>>
    >>
    >

  • profile
    네, 말씀하신대로,
    DriverEntry 에서 레지스트리에 기록하여 드라이버가 로드되는 시점을 조절해 보시기 바랍니다.^^'
    (너무 빠르면, 레지스트리가 준비되어 있지 않았을 때라- 기록 되지 않을 수도 있습니다. 적확한 시점이...
    제일 빠른 순서의 다음 이었던것 같습니다.ㅋ
    로드 옵션이 0,1,2,3 이던가요? 1 아니면 2정도 되겠네요.)

    링크해주신 내용은 필터 드라이버와 관련한 코드이더군요.^^' 음... 물론 링크 내용을 토대로 저역시 뭔가 해볼수 있지 않을까 했습니다. 가령, mouclass 드라이버에게 내 드라이버가 완벽히 로드 된후, 콜백함수의 포인터를 요청한다던가 하는... . 그게 가능한지는 DDK mouclass 드라이버 소스를 분석해 봐야 할듯 하네요. ㅋ

    네, 말씀하신대로, 시리얼이냐 USB 냐 하는 것은 중요하지 않습니다.
    다만, 수시로 빼고 꽂는 USB 마우스처럼- 그런 장치들을 위한 어떤 방법이 HID 장치제어와 관련해서 뭔가 있지 않을까 해서 말을 덧붙여 보았었습니다.

    그렇게 된다면, 굳이 두개의 드라이버를 만들 필요는 없을테니까요^^ (USB 장치가 꽂히면, 내 드라이버가 로드되고, 그시점에서도 MOUCLASS 드라이버로 부터 콜백함수를 받을 수 있는 것과 같이 말이죠^^)

    이번에도 도움이 되었나 모르겠네요...
    쩝... 관련일을 하고 있었다면, 좀더 제대로 내용을 달아 드렸을텐데...;;;

    부디 성공하시길..!^^

    >레지스트리 기록되는 시점이 중요하군요~
    >시도를 해봐도 뭔가 부족하네요
    >DriverEntry에서 레지를 기록하게했거든요..
    >
    >마우스디바이스오브젝트주소를 얻어와서
    >irp를 날려주는건 어떻게 생각하셔요?
    >찾아보니 IoGetDeviceObjectPointer() 이라는 함수가 있더라고요~
    >symbol name으로 포인터를 얻어오는 함수입니다.
    >http://blog.naver.com/PostView.nhn?blogId=hinghihi&logNo=50008719760
    >
    >뭔가 제가 여쭤보는게 시리얼이나 usb냐는 안중요한것아닌가요?
    >제가 잘못이해하고 있나 싶어서요..
    >터치컨트롤러 자체는 usb로 통신하지만(이미 구현됐고)
    >마우스를 제어하는 방법에서 말썽이니깐요
    >
    >건우님덕에 방향을 잡고 일단 탐색중입니다
    >감사합니다^^
    >
    >아참 구글에 이건우라고 검색하니
    >첫 번째 검색결과로 뜨시네요...ㅋㅋ!!!
    >대단합니다.
    >
    >
    >
    >>음, 아래 말씀하신 내용이 맞습니다.
    >>다만, 레지스트리에 기록되는 시점이 중요합니다.
    >>부팅시 레지스트리 db 가 준비되고,
    >>곧바로 정보를 쓸 수 있게끔,
    >>Driver 의 로드 시점을 최대한 빠르게 해놓으시면 될
    >>것 같습니다.
    >>
    >>그리고, USB 용 Touch DRIVER 를 작성해 본 경험은 없지만, 드라이버의 개수가 두개로 분리되어 있는 것도 나름 장점이 될 수 있을 것 같습니다.
    >>
    >>즉, mouse class 드라이버의 포인터를 얻기 위해서는 USB 디바이스가 부착되어 있지 않아도 드라이버가 부팅시 로드되어 마우스 드라이버의 콜백 포인터를 얻어 놓고 있어야 할테고- 이후, USB 디바이스의 부착시 컨트롤 드라이버가 로드되면서 먼저 로드 된 드라이버와 대화하는 방법을 사용할 수 있을 것 같습니다.
    >>
    >>하지만, 제가 먼저 말씀드린바대로 usb 용으로 touch driver 를 개발한 경험이 없기에, 빠뜨리고 있거나 잘못 알고 있는 정보가 있을 수 있습니다.
    >>가령, HID 와 관련한 드라이버들이 어떻게 마우스를 컨트롤 하는지는 저도 정확히 모르겠습니다.^^;
    >>관련일에 손을 놓은 터라 좀 멀어져 있습니다. T^T
    >>
    >>죄송합니다,
    >>도움이 되었는지 모르겠네요...^^'
    >>
    >>
    >>
    >>
    >>>안녕하세요.
    >>>
    >>>말씀하신데로 시도 중인데 의문점이 한가지 생겼습니다.
    >>>
    >>>알려주셨던 내용과 검색을 통해서 다음과같은 사실을 정리 할 수 있었습니다.
    >>>
    >>>1. 마우스에 이벤트를 보내주기 위해선 mouclass callback 함수를 받아와야한다.
    >>>
    >>>2. 아래와 같이 특정레지스트리 주소에 작성해주면 해당 서비스에 마우스콜백함수가 날아온다
    >>>\Registry\Machine\Hardware\Devicemap\PointerPort
    >>>
    >>>name : \Device\PointerPort0
    >>>value : \Registry\Machine\System\CurrentControlSet\Services\서비스명
    >>>
    >>>3. MajorFunction 에서 IRP_MJ_INTERNAL_DEVICE_CONTROL 메시지를 잡아낸다.
    >>>
    >>>4. IOCTL_INTERNAL_MOUSE_CONNECT 부분에서 접속정보를 얻어낸다.
    >>>
    >>>
    >>>하지만 아무 메시지가 날아오지 않네요..
    >>>
    >>>제가 생각하고 있는게 틀린점이 있는지요
    >>>
    >>>=============================================
    >>>
    >>>그리고
    >>>
    >>>mouser나 mouclass 말고도 제가 가지고 있는 실제터치스크린 드라이버 소스도있습니다.
    >>>
    >>>기존에서는 controller driver 한 개
    >>>mouse control driver 한 개
    >>>
    >>>이렇게 두 개의 드라이버를 만들어놓고
    >>>드라이버끼리 통신하는 방법을 사용했습니다.
    >>>
    >>>controller driver에서 mouse control driver를 불러온거죠.
    >>>
    >>>한 개의 드라이버파일로는 불가능한 일인가요
    >>>
    >>>바쁘실텐데 신경써주셔서 감사합니다^^
    >>>
    >>>
    >>
    >

  • profile
    음, 아래 말씀하신 내용이 맞습니다.
    다만, 레지스트리에 기록되는 시점이 중요합니다.
    부팅시 레지스트리 db 가 준비되고,
    곧바로 정보를 쓸 수 있게끔,
    Driver 의 로드 시점을 최대한 빠르게 해놓으시면 될
    것 같습니다.

    그리고, USB 용 Touch DRIVER 를 작성해 본 경험은 없지만, 드라이버의 개수가 두개로 분리되어 있는 것도 나름 장점이 될 수 있을 것 같습니다.

    즉, mouse class 드라이버의 포인터를 얻기 위해서는 USB 디바이스가 부착되어 있지 않아도 드라이버가 부팅시 로드되어 마우스 드라이버의 콜백 포인터를 얻어 놓고 있어야 할테고- 이후, USB 디바이스의 부착시 컨트롤 드라이버가 로드되면서 먼저 로드 된 드라이버와 대화하는 방법을 사용할 수 있을 것 같습니다.

    하지만, 제가 먼저 말씀드린바대로 usb 용으로 touch driver 를 개발한 경험이 없기에, 빠뜨리고 있거나 잘못 알고 있는 정보가 있을 수 있습니다.
    가령, HID 와 관련한 드라이버들이 어떻게 마우스를 컨트롤 하는지는 저도 정확히 모르겠습니다.^^;
    관련일에 손을 놓은 터라 좀 멀어져 있습니다. T^T

    죄송합니다,
    도움이 되었는지 모르겠네요...^^'


    >안녕하세요.
    >
    >말씀하신데로 시도 중인데 의문점이 한가지 생겼습니다.
    >
    >알려주셨던 내용과 검색을 통해서 다음과같은 사실을 정리 할 수 있었습니다.
    >
    >1. 마우스에 이벤트를 보내주기 위해선 mouclass callback 함수를 받아와야한다.
    >
    >2. 아래와 같이 특정레지스트리 주소에 작성해주면 해당 서비스에 마우스콜백함수가 날아온다
    >\Registry\Machine\Hardware\Devicemap\PointerPort
    >
    >name : \Device\PointerPort0
    >value : \Registry\Machine\System\CurrentControlSet\Services\서비스명
    >
    >3. MajorFunction 에서 IRP_MJ_INTERNAL_DEVICE_CONTROL 메시지를 잡아낸다.
    >
    >4. IOCTL_INTERNAL_MOUSE_CONNECT 부분에서 접속정보를 얻어낸다.
    >
    >
    >하지만 아무 메시지가 날아오지 않네요..
    >
    >제가 생각하고 있는게 틀린점이 있는지요
    >
    >=============================================
    >
    >그리고
    >
    >mouser나 mouclass 말고도 제가 가지고 있는 실제터치스크린 드라이버 소스도있습니다.
    >
    >기존에서는 controller driver 한 개
    >mouse control driver 한 개
    >
    >이렇게 두 개의 드라이버를 만들어놓고
    >드라이버끼리 통신하는 방법을 사용했습니다.
    >
    >controller driver에서 mouse control driver를 불러온거죠.
    >
    >한 개의 드라이버파일로는 불가능한 일인가요
    >
    >바쁘실텐데 신경써주셔서 감사합니다^^
    >
    >

제목 날짜
mouclass 접근.. 3 2010.03.13
[TIP] NEXUS(넥서스) 5x 루팅 방법입니다. 2016.01.05
USB Keyboard Filter Driver 제작 관련... 1 2006.11.22
class callback호출시 에러가 나는데 뭐가 문제인지 모르겠습니다..ㅠㅠ 1 2006.07.22
mouclass 접근.. 3 2010.03.13
터치스크린 - 마우스제어 2 2010.03.10
먼 길을 따라.. 1 2009.12.21
os를 공부하고 있습니다. 1 2009.12.14
"pc용 dos의 설계 및 구현" 책의 diskette 화일을 구합니다. 1 2009.11.10
GUNClient Download Control 질문 1 2007.06.08
PC의 메모리 맵 정보 1 2007.04.24
gunshadow 처럼 1 2007.01.26
GSector 플로피->하드로 쓰기가 가능한가요? 1 2007.01.26
CD-ROM WRITE에관한 질문입니다.. 1 2006.12.29
플로피 필터 드라이버 관련 질문입니다..답변좀해주세요.. 2 2006.12.12
USB Keyboard Filter Driver 제작 관련... 1 2006.11.22
전에 질문드렸던 내용에 대한 자답입니다. 1 2006.07.25
class callback호출시 에러가 나는데 뭐가 문제인지 모르겠습니다..ㅠㅠ 1 2006.07.22
마우스 필터 드라이버관련 질문입니다. 2 2006.07.19
민망 민망 .. ^^;;; 또 질문이요.. 1 2006.07.19
감사합니다. 1 2006.07.18
한 가지만 더 올리겠습니다. 1 2006.07.18
단순한 질문을 드리는 것 같아 송구하지만요.... 1 2006.07.17
ㅜㅜ.. os 커널 만들기 질문이요.. 1 2006.07.16
태그 목록
위로