HID Mouse Filter driver, developing
Page 1 of 3 123 LastLast
Results 1 to 10 of 25
  1. #1
    Tech Mentor ToS's Avatar
    Join Date
    Apr 2008
    Location
    EXIT fest.town, Serbia
    Posts
    357

    Default HID Mouse Filter driver, developing

    Hi all, I have a quick question:

    Would anyone (with experience) be interested to write a small upper level mouse filter driver with these features:
    - custom setup (like in hidUSBf) so that only certain mice can be selected
    - filtering mouse input (preventing it form getting to cursor) and routing it to some sort of IPC channel (I'm open for suggestions)
    - each mouse device must have unique ID (simple int or use separate IPC data channel)
    - possibly a hi-res timestamp attached to each update (since it seems that in windows, on the application side, not all 1ms has the same length)

    That's it mostly. Hope I haven't forgotten anything.
    I have tried building this filter with some Windows API combo but that just feelt dirty, unstable and seems like timings vary too much.
    Many photons have died to bring you this information.

  2. #2
    Tech Convert
    Join Date
    Oct 2011
    Posts
    5

    Default

    Hi Tos,
    i am interested in your filter driver. It is almost the solution i am looking for. I tried to build a lower level driver using the ddk samples but it does not work yet.
    The timestamp is not necessary for my aplication but i need the xy-data of a special mouse to use it in my program. This special device should not be used for the windows mouse cursor. Have you already finished your project? Would you share your sources? Would a cooperation be intersting for you?

    Best regards!

  3. #3
    Tech Mentor ToS's Avatar
    Join Date
    Apr 2008
    Location
    EXIT fest.town, Serbia
    Posts
    357

    Default

    I haven't done much with driver filter as I'm having some troubles with initial research (both hardware and software related). I'm starting the work on kernel mode driver filter as soon as possible(I don't believe demo-moufiltr will be used.).
    Many photons have died to bring you this information.

  4. #4
    Tech Convert
    Join Date
    Oct 2011
    Posts
    5

    Default

    you are right. In my opinion a kernel mode driver is the only way to realize it too but in your first post you wrote that you tried to build this filter with some Windows API combo but is unstable. Which functions did you use?
    Last edited by fogmaster; 10-14-2011 at 05:36 PM.

  5. #5
    Tech Mentor ToS's Avatar
    Join Date
    Apr 2008
    Location
    EXIT fest.town, Serbia
    Posts
    357

    Default

    Yes but that method is not time-accurate, I was not able to get the messages in each exact milisecond.
    Many photons have died to bring you this information.

  6. #6
    Tech Convert
    Join Date
    Oct 2011
    Posts
    5

    Default

    but you get the relativ xy-movement and can prevent that the values are used for the windows cursor? That would be great! Especially in user mode program!
    I intend to use a trackball for controlling the pan tilt movement of moving lights. I have already written am programm that overwrites some bytes in the process memory of the "grandma onPC" software. Now i need the xy-values of a usb trackball to overwrite the bytes of the simulated trackball in "grandma onPC". Can you help me with your current version of the driver?
    Best regards!

  7. #7
    Tech Mentor ToS's Avatar
    Join Date
    Apr 2008
    Location
    EXIT fest.town, Serbia
    Posts
    357

    Default

    Ok, the solution was a combo of RawInput and LL_MouseHook. Each in it's own separate process talking trough a named pipe. RawInput can discern between devices so it deceides which mouse is to be blocked, sends the info to Hook process which is allowed to "cancel" mouse events.
    Why Microsoft did not allow RawInput to cancel events, beats me but it's quite stupid.
    I'd like to help you with the driver but right now I'm stuck too with KMDF.
    Many photons have died to bring you this information.

  8. #8
    Tech Convert
    Join Date
    Oct 2011
    Posts
    5

    Default

    ok, for now i decided to filter the rawinput according to the device handle. So my programm gets the input only from trackball but the cursor still moved by all mice and trackball. Thats enough for testing but a better solution would be nice. I am looking forward to to read from you Please don't feel scrambled but can you estimate how long it will take to develop your driver?

    Best regards

  9. #9
    Tech Mentor ToS's Avatar
    Join Date
    Apr 2008
    Location
    EXIT fest.town, Serbia
    Posts
    357

    Default

    I will know that only when I start working on it (which did not happen yet).
    Btw, why aren't you using GlovePIE for your project?
    Many photons have died to bring you this information.

  10. #10
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    Quote Originally Posted by ToS View Post
    I will know that only when I start working on it (which did not happen yet).
    Btw, why aren't you using GlovePIE for your project?
    glovepie does tend to eat quite a lot of cpu - due to the way it loops round the script i guess.

    i used it to swallow the input from a usb touchpad and convert to midi. maybe i just made the script too complex.
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •