[ros-dev] serial.sys

Rick Parrish rfmobile at swbell.net
Fri Aug 25 07:12:40 CEST 2006


This email is directed mostly to Herve and anyone else familiar with 
SERIAL.SYS and how it works.

Two years ago I implemented a small (5 kilobyte) WDM driver that 
"wrapped" SERIAL.SYS. It's an ugly hack that (almost) works. What I did 
was "hook" the interrupt service routine by directly modifying the IDT. 
It works most of the time but occassionally I get BSOD (and I don't know 
why).

The driver installed ISR reads the MSR (modem status register) of the 
UART. The RDTSC instruction is used to generate a timestamp of when the 
MSR changed. Both pieces of data are stored in a FIFO - on every 
interrupt. A user mode program can later retrieve the information at 
regular time intervals.

Hint: using the CTS, DCD, and DSR pins on a standard RS232 port, you can 
create a Poor Man's 3 Channel Logic Analyzer. Other applications include 
packet radio interface for amateur radio.

What I'd like to do is merge the functionality directly into SERIAL.SYS 
(eg. work with the OS instead of around it). The extra functionality 
would be exposed through IOCTL or some other means but would not break 
ordinary serial COMM functionality.

Disclaimer: I'm not a veteran author of kernel mode drivers.

This is a relatively obscure application so if you want to reply 
off-list, that's perfectly fine by me.

Here are my questions:

1. how robust is the current SERIAL.SYS driver (I see a few "FIXME"s in 
the comments) ?
2. does ReactOS support or require code-signing of drivers? (probably 
not yet)
3. Can I run the "Genuine" Reactos SERIAL.SYS on "Genuine" Windows 
2K/XP? I think so (setting WFP aside). 4. is anyone in the ReactOS 
community interested in such a driver extension as described above? 
(probably not)

Also, if anyone would like to see the logic analyzer program and related 
driver - please send me an email.

Regards,
Rick



More information about the Ros-dev mailing list