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