RS422 Serial Mouse and Keyboard

I got pulled away on other work, and my original thread died of old age.

My customer wants a Windows 7 computer to run with an RS422 keyboard and trackball. The computer has a multi-port RS422 card that installs as standard serial port COM ports. I have an application that generates keystrokes and mouse events, but the user wants to be able to logon, so I need to write a driver.

Doron Holon recommended that I develop an HID UMDF mini-driver. Will that support logon, CTRL-ALT-DEL, etc?

The keyboard and trackball are not PNP. How do I get Windows 7 to install my driver? Since the messages from the keyboard and trackball are easy to tell apart (1 byte vs. multi-byte), I could have a single driver listening on each RS422 port, then depending on what data showed up, I could tell if it was the keyboard or mouse that was attached. Can I write a single driver that could be a mouse or a keyboard?

The keyboard doesn’t generate key-up codes, only key-down. So, I maintain “toggle” states for ALT and CTRL in my code. Press ALT once, then every key after that is an ALT-whatever key. Press ALT again to go back to normal keys. There is a status bar icon that shows the state of the ALT and CTRL toggle. How do I display information to the user before logon, or when the computer is logged on but locked, so they can tell the state of the ALT and CTRL keys?

Is developing in MSVS2013 with WDK8.1 preview recommended for developing right now, or should I use a previous version? (are they stable? I don’t like the word “preview”!)

Is there another place (other than MSDN website) to download example driver projects? I’d love to see code that used a COM port from a device driver.

Yes, the umdf driver reported data will work for logon. If there is a device per port, I would install the driver twice, one for each. It can be the same driver for both, just two instances. Your driver can’t display any UI, umdf or not. If you need UI, you can install an app agent that starts on logon and then opens a vendor defined TLC that your driver reports in its hid descriptor that gives the info you want to display

Since these devices are not pnp, you use a root enumerated device, which can be installed with

Devcon install (your inf) (your made up hardware id)

d

Bent from my phone


From: xxxxx@gmail.commailto:xxxxx
Sent: ?7/?26/?2013 12:49 PM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] RS422 Serial Mouse and Keyboard

I got pulled away on other work, and my original thread died of old age.

My customer wants a Windows 7 computer to run with an RS422 keyboard and trackball. The computer has a multi-port RS422 card that installs as standard serial port COM ports. I have an application that generates keystrokes and mouse events, but the user wants to be able to logon, so I need to write a driver.

Doron Holon recommended that I develop an HID UMDF mini-driver. Will that support logon, CTRL-ALT-DEL, etc?

The keyboard and trackball are not PNP. How do I get Windows 7 to install my driver? Since the messages from the keyboard and trackball are easy to tell apart (1 byte vs. multi-byte), I could have a single driver listening on each RS422 port, then depending on what data showed up, I could tell if it was the keyboard or mouse that was attached. Can I write a single driver that could be a mouse or a keyboard?

The keyboard doesn’t generate key-up codes, only key-down. So, I maintain “toggle” states for ALT and CTRL in my code. Press ALT once, then every key after that is an ALT-whatever key. Press ALT again to go back to normal keys. There is a status bar icon that shows the state of the ALT and CTRL toggle. How do I display information to the user before logon, or when the computer is logged on but locked, so they can tell the state of the ALT and CTRL keys?

Is developing in MSVS2013 with WDK8.1 preview recommended for developing right now, or should I use a previous version? (are they stable? I don’t like the word “preview”!)

Is there another place (other than MSDN website) to download example driver projects? I’d love to see code that used a COM port from a device driver.


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

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</mailto:xxxxx></mailto:xxxxx>

Does MSDN (that you can buy with Visual Studio) provide more examples on
how to develop drivers?

On Fri, Jul 26, 2013 at 5:09 PM, Doron Holan wrote:

> Yes, the umdf driver reported data will work for logon. If there is a
> device per port, I would install the driver twice, one for each. It can be
> the same driver for both, just two instances. Your driver can’t display any
> UI, umdf or not. If you need UI, you can install an app agent that starts
> on logon and then opens a vendor defined TLC that your driver reports in
> its hid descriptor that gives the info you want to display
>
> Since these devices are not pnp, you use a root enumerated device, which
> can be installed with
>
> Devcon install (your inf) (your made up hardware id)
>
> d
>
> Bent from my phone
> ------------------------------
> From: xxxxx@gmail.com
> Sent: 7/26/2013 12:49 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] RS422 Serial Mouse and Keyboard
>
> I got pulled away on other work, and my original thread died of old age.
>
> My customer wants a Windows 7 computer to run with an RS422 keyboard and
> trackball. The computer has a multi-port RS422 card that installs as
> standard serial port COM ports. I have an application that generates
> keystrokes and mouse events, but the user wants to be able to logon, so I
> need to write a driver.
>
> Doron Holon recommended that I develop an HID UMDF mini-driver. Will that
> support logon, CTRL-ALT-DEL, etc?
>
> The keyboard and trackball are not PNP. How do I get Windows 7 to install
> my driver? Since the messages from the keyboard and trackball are easy to
> tell apart (1 byte vs. multi-byte), I could have a single driver listening
> on each RS422 port, then depending on what data showed up, I could tell if
> it was the keyboard or mouse that was attached. Can I write a single
> driver that could be a mouse or a keyboard?
>
> The keyboard doesn’t generate key-up codes, only key-down. So, I maintain
> “toggle” states for ALT and CTRL in my code. Press ALT once, then every
> key after that is an ALT-whatever key. Press ALT again to go back to
> normal keys. There is a status bar icon that shows the state of the ALT
> and CTRL toggle. How do I display information to the user before logon, or
> when the computer is logged on but locked, so they can tell the state of
> the ALT and CTRL keys?
>
> Is developing in MSVS2013 with WDK8.1 preview recommended for developing
> right now, or should I use a previous version? (are they stable? I don’t
> like the word “preview”!)
>
> Is there another place (other than MSDN website) to download example
> driver projects? I’d love to see code that used a COM port from a device
> driver.
>
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> 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
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> 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
>

All our samples are free online, an MSDN subscription doesn’t contain pay for play samples

d

Bent from my phone


From: Gerard Schwalbemailto:xxxxx
Sent: ?8/?2/?2013 6:49 AM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: Re: [ntdev] RS422 Serial Mouse and Keyboard

Does MSDN (that you can buy with Visual Studio) provide more examples on how to develop drivers?

On Fri, Jul 26, 2013 at 5:09 PM, Doron Holan > wrote:
Yes, the umdf driver reported data will work for logon. If there is a device per port, I would install the driver twice, one for each. It can be the same driver for both, just two instances. Your driver can’t display any UI, umdf or not. If you need UI, you can install an app agent that starts on logon and then opens a vendor defined TLC that your driver reports in its hid descriptor that gives the info you want to display

Since these devices are not pnp, you use a root enumerated device, which can be installed with

Devcon install (your inf) (your made up hardware id)

d

Bent from my phone
________________________________
From: xxxxx@gmail.commailto:xxxxx
Sent: 7/26/2013 12:49 PM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] RS422 Serial Mouse and Keyboard

I got pulled away on other work, and my original thread died of old age.

My customer wants a Windows 7 computer to run with an RS422 keyboard and trackball. The computer has a multi-port RS422 card that installs as standard serial port COM ports. I have an application that generates keystrokes and mouse events, but the user wants to be able to logon, so I need to write a driver.

Doron Holon recommended that I develop an HID UMDF mini-driver. Will that support logon, CTRL-ALT-DEL, etc?

The keyboard and trackball are not PNP. How do I get Windows 7 to install my driver? Since the messages from the keyboard and trackball are easy to tell apart (1 byte vs. multi-byte), I could have a single driver listening on each RS422 port, then depending on what data showed up, I could tell if it was the keyboard or mouse that was attached. Can I write a single driver that could be a mouse or a keyboard?

The keyboard doesn’t generate key-up codes, only key-down. So, I maintain “toggle” states for ALT and CTRL in my code. Press ALT once, then every key after that is an ALT-whatever key. Press ALT again to go back to normal keys. There is a status bar icon that shows the state of the ALT and CTRL toggle. How do I display information to the user before logon, or when the computer is logged on but locked, so they can tell the state of the ALT and CTRL keys?

Is developing in MSVS2013 with WDK8.1 preview recommended for developing right now, or should I use a previous version? (are they stable? I don’t like the word “preview”!)

Is there another place (other than MSDN website) to download example driver projects? I’d love to see code that used a COM port from a device driver.


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

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

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

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 Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev 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</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>

You can download the driver samples see
http://msdn.microsoft.com/en-us/library/windows/hardware/ff554118(v=vs.85).a
spx for a description and the link to download. MSDN is needed to get the
tools, the samples are there no matter.

Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gerard Schwalbe
Sent: Friday, August 02, 2013 9:49 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] RS422 Serial Mouse and Keyboard

Does MSDN (that you can buy with Visual Studio) provide more examples on how
to develop drivers?

On Fri, Jul 26, 2013 at 5:09 PM, Doron Holan
wrote:

Yes, the umdf driver reported data will work for logon. If there is
a device per port, I would install the driver twice, one for each. It can be
the same driver for both, just two instances. Your driver can’t display any
UI, umdf or not. If you need UI, you can install an app agent that starts on
logon and then opens a vendor defined TLC that your driver reports in its
hid descriptor that gives the info you want to display

Since these devices are not pnp, you use a root enumerated device,
which can be installed with

Devcon install (your inf) (your made up hardware id)

d

Bent from my phone
________________________________

From: xxxxx@gmail.com
Sent: 7/26/2013 12:49 PM
To: Windows System Software Devs Interest List
mailto:xxxxx
Subject: [ntdev] RS422 Serial Mouse and Keyboard

I got pulled away on other work, and my original thread died of old
age.

My customer wants a Windows 7 computer to run with an RS422 keyboard
and trackball. The computer has a multi-port RS422 card that installs as
standard serial port COM ports. I have an application that generates
keystrokes and mouse events, but the user wants to be able to logon, so I
need to write a driver.

Doron Holon recommended that I develop an HID UMDF mini-driver.
Will that support logon, CTRL-ALT-DEL, etc?

The keyboard and trackball are not PNP. How do I get Windows 7 to
install my driver? Since the messages from the keyboard and trackball are
easy to tell apart (1 byte vs. multi-byte), I could have a single driver
listening on each RS422 port, then depending on what data showed up, I could
tell if it was the keyboard or mouse that was attached. Can I write a
single driver that could be a mouse or a keyboard?

The keyboard doesn’t generate key-up codes, only key-down. So, I
maintain “toggle” states for ALT and CTRL in my code. Press ALT once, then
every key after that is an ALT-whatever key. Press ALT again to go back to
normal keys. There is a status bar icon that shows the state of the ALT and
CTRL toggle. How do I display information to the user before logon, or when
the computer is logged on but locked, so they can tell the state of the ALT
and CTRL keys?

Is developing in MSVS2013 with WDK8.1 preview recommended for
developing right now, or should I use a previous version? (are they stable?
I don’t like the word “preview”!)

Is there another place (other than MSDN website) to download example
driver projects? I’d love to see code that used a COM port from a device
driver.


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

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
http:


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

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 Visit the list at:
http://www.osronline.com/showlists.cfm?list=ntdev 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</http:></mailto:xxxxx>