Not a new product, no. It’s an elan touchpad but their driver is awful
and not open source. Synaptics at least has an SDK with all the hooks,
but not Elan. I thought maybe the synaptics driver would work with the
elan hardware since they are probably both pretty similar under the
hood, not so.
My intention is to customize the behavior of this existing touchpad to
align with my preferred ergonomics.
------ Original Message ------
From: “Doron Holan”
To: “Windows System Software Devs Interest List”
Sent: 2013-04-20 22:33:01
Subject: RE: [ntdev] How to access raw ps/2 touchpad data through kernel
mode driver?
>Is this for a product? If so, why wouldn’t elan provide the driver for
>their part? Win8 has some pretty strict touchpad requirements, not
>simple for someone new and on his own to meet
>
>d
>
>Bent from my phone
>--------------------------------------------------------------------------------
>From: Jad Meouchy
>Sent: 4/20/2013 10:23 PM
>To: Windows System Software Devs Interest List
>Subject: Re: [ntdev] How to access raw ps/2 touchpad data through
>kernel mode driver?
>
>When you say ‘report that data’, do you mean that I won’t be able to
>directly share that data into a user mode application? That’s okay for
>now, all I really want to do is change the movement behavior of the
>touchpad. Eventually I will need to design an API layer and some kind
>of management interface, or use registry keys perhaps.
>
>I’m still trying to figure out exactly when to send off the init bytes
>to the mouse, not sure if it’s inside IOCTL_INTERNAL_MOUSE_CONNECT or
>IOCTL_INTERNAL_I8042_HOOK_MOUSE or
>IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION.
>
>
>------ Original Message ------
>From: “Doron Holan”
>To: “Windows System Software Devs Interest List”
>Sent: 2013-04-20 21:33:28
>Subject: RE: [ntdev] How to access raw ps/2 touchpad data through
>kernel mode driver?
>>Pnpi8042 is the one that processes these requests which you send down
>>the stack. You won’t find public samples of drivers sending this
>>ioctls, drivers that send them are for proprietary hardware. device
>>init will be sync, normal packet processing and io flow will be
>>asynchronous.
>>
>>Your bigger design problem is going to be how you are going to report
>>data like.touch and other extended info. Mouclass won’t let you report
>>any of that data. If you want it to show up as touch, you will need a
>>hid miniport to push the datat to (use a pdo enumerated from your
>>filter for that). Also, if you look at all the mapping that elan and
>>others do, most of that is in user mode in value ads software, not the
>>driver
>>
>>d
>>
>>Bent from my phone
>>--------------------------------------------------------------------------------
>>From: Jad Meouchy
>>Sent: 4/20/2013 8:27 PM
>>To: Windows System Software Devs Interest List
>>Subject: Re: [ntdev] How to access raw ps/2 touchpad data through
>>kernel mode driver?
>>
>>Yes indeed a challenging one to start with but I think the hard part
>>is behind me. I actually do have the parts of the protocol that I
>>need, I have the init code bytes and the responses and all that fun
>>stuff.
>>
>>What I’m trying to understand is whether I have to do the I/O
>>asynchronously and build a state machine into the driver, or if there
>>is a way to do it synchronously. And with asynch, if I can queue up a
>>bunch of bytes into a buffer/queue and then set state to process the
>>response. Either one is no problem, and the ReactOS implementation
>>that I am now looking at is asynch.
>>
>>IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER appears to be the method for
>>pushing data, but it is actually quite difficult to find examples of
>>its use. I see some use in a keyboard ps/2 driver but not sure if it
>>translates. Do you know of any good examples of that ioctl? I looked
>>at the old pnpi8042 code from the WDK 6000 but it is fairly long and
>>seems a little outdated.
>>
>>Thanks,
>>Jad
>>
>>------ Original Message ------
>>From: “Doron Holan”
>>To: “Windows System Software Devs Interest List”
>>Sent: 2013-04-20 20:15:20
>>Subject: RE: [ntdev] How to access raw ps/2 touchpad data through
>>kernel mode driver?
>>>This is not a project to learn drivers. Nastiness lies here. You have
>>>to work with the native ps2 driver , it provides some hooks but
>>>probably not enough to.make the touch pad work. Furthermore, unless
>>>elan has given you a spec for their private custom interface, you
>>>don’t have much to work with.
>>>
>>>Start here,
>>>http://msdn.microsoft.com/en-us/library/windows/hardware/ff539982(v=vs.85).aspx
>>>
>>>d
>>>
>>>Bent from my phone
>>>--------------------------------------------------------------------------------
>>>From: xxxxx@jadware.com
>>>Sent: 4/20/2013 4:36 PM
>>>To: Windows System Software Devs Interest List
>>>Subject: [ntdev] How to access raw ps/2 touchpad data through kernel
>>>mode driver?
>>>
>>>I’m writing an alternative ps/2 touchpad driver for a new laptop and
>>>having challenges accessing raw data from the device. Started with
>>>moufiltr (WDK8) and it works great and kernel debug output is
>>>flowing. However, I’m ultimately trying to support multitouch and
>>>having a difficult time understanding how to communicate with the
>>>device for it. MOUSE_INPUT_DATA is giving me what appears to be
>>>processed or standardized mouse input messages. Not able to find out
>>>which finger generates the messages or find raw information like
>>>pressure.
>>>
>>>This kind of raw information probably requires a special protocol
>>>with the device and there is a mature linux driver with all that info
>>>documented. What I need help with is understanding how to
>>>communicate with the device using the Windows KMDF driver. The Linux
>>>guys are using functions like ‘ps2_command’ and
>>>‘psmouse_sliced_command’ to read registers. I’m not sure what is the
>>>windows equivalent of this or if I am even on the right track.
>>>
>>>The linux driver is somehow receiving 4-byte and 6-byte packets after
>>>setting a protocol handler on a ‘psmouse’ object. If anyone has any
>>>suggestions on how I can ultimately push some bytes over to a ps2
>>>device and then receive some bytes back, that would be a great place
>>>to start. Even if it’s just a function name or msdn link on how to
>>>manage ps/2 protocol. I’m pretty advanced with C/C++ and embedded
>>>development, but new to windows drivers.
>>>
>>>The device is an elantech ps/2 touchpad on an Acer Aspire S7
>>>notebook.
>>>
>>>Thanks!
>>>
>>>—
>>>NTDEV is sponsored by OSR
>>>
>>>OSR is HIRING!! See http://www.osr.com/careers
>>>
>>>For our schedule of WDF, WDM, debugging and other seminars visit:
>>>http://www.osr.com/seminars
>>>
>>>To unsubscribe, visit the List Server section of OSR Online at
>>>http://www.osronline.com/page.cfm?name=ListServer
>>>
>>>
>>>
>>>—
>>>NTDEV is sponsored by OSR
>>>
>>>OSR is HIRING!! See http://www.osr.com/careers
>>>
>>>For our schedule of WDF, WDM, debugging and other seminars visit:
>>>http://www.osr.com/seminars
>>>
>>>To unsubscribe, visit the List Server section of OSR Online at
>>>http://www.osronline.com/page.cfm?name=ListServer
>>
>>—
>>NTDEV is sponsored by OSR
>>
>>OSR is HIRING!! See http://www.osr.com/careers
>>
>>For our schedule of WDF, WDM, debugging and other seminars visit:
>>http://www.osr.com/seminars
>>
>>To unsubscribe, visit the List Server section of OSR Online at
>>http://www.osronline.com/page.cfm?name=ListServer
>>
>>—
>>NTDEV is sponsored by OSR
>>
>>OSR is HIRING!! See http://www.osr.com/careers
>>
>>For our schedule of WDF, WDM, debugging and other seminars visit:
>>http://www.osr.com/seminars
>>
>>To unsubscribe, visit the List Server section of OSR Online at
>>http://www.osronline.com/page.cfm?name=ListServer
>
>—
>NTDEV is sponsored by OSR
>
>OSR is HIRING!! See http://www.osr.com/careers
>
>For our schedule of WDF, WDM, debugging and other seminars visit:
>http://www.osr.com/seminars
>
>To unsubscribe, visit the List Server section of OSR Online at
>http://www.osronline.com/page.cfm?name=ListServer
>
>—
>NTDEV is sponsored by OSR
>
>OSR is HIRING!! See http://www.osr.com/careers
>
>For our schedule of WDF, WDM, debugging and other seminars visit:
>http://www.osr.com/seminars
>
>To unsubscribe, visit the List Server section of OSR Online at
>http://www.osronline.com/page.cfm?name=ListServer