Emulating a serial port

There were some relevant messages in the archives (10 years – what a long time,
wow), but I found nothing useful.

I’m trying to make a virtual serial port under Windows 2000. (If anyone should
wonder why I want to do something, the answer ‘I am insane’ should suffice.)
Armed with the example ‘serial’ driver that comes with the Win2k DDK, I have
produced something that almost produces a convincing serial port – with the
minor exception that it doesn’t work. I registered the interface, I created the
symlinks, I did everything I thought was necessary, but I wind up with this:

C:\>mode com4
Device COM4 is not currently available.

Note that this differs from the ‘nonexistent device’ error:

C:\>mode com5
Illegal device name - COM5

When I try to view the information on the ‘\Device\JbrSer0’ object with
SysInternals’ WinObj, I get ‘unable to open device’, which I also get on my real
serial ports when the port is in use.

My heavy use of DgbPrint() indicates that I never even get an IPR_MJ_CREATE.

Is there anyone out there with some experience who would be willing to help me
solve this problem?

Hi Steve,
I’m not very experienced with serial drivers per se, but perhaps you may
want to have a look at www.ircomm2k.de.
Here is a GPL’ed product that maps a infrared device to a virtual com
port. I know it works because I have been using it for a while. The
source code might be of some help.

Regards,
-/renji

On Tue, 2003-07-08 at 08:39, Stevie-O wrote:

There were some relevant messages in the archives (10 years – what a long time,
wow), but I found nothing useful.

I’m trying to make a virtual serial port under Windows 2000. (If anyone should
wonder why I want to do something, the answer ‘I am insane’ should suffice.)
Armed with the example ‘serial’ driver that comes with the Win2k DDK, I have
produced something that almost produces a convincing serial port – with the
minor exception that it doesn’t work. I registered the interface, I created the
symlinks, I did everything I thought was necessary, but I wind up with this:

C:\>mode com4
Device COM4 is not currently available.

Note that this differs from the ‘nonexistent device’ error:

C:\>mode com5
Illegal device name - COM5

When I try to view the information on the ‘\Device\JbrSer0’ object with
SysInternals’ WinObj, I get ‘unable to open device’, which I also get on my real
serial ports when the port is in use.

My heavy use of DgbPrint() indicates that I never even get an IPR_MJ_CREATE.

Is there anyone out there with some experience who would be willing to help me
solve this problem?


You are currently subscribed to ntdev as: xxxxx@calsoftinc.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Make sure the DO_DEVICE_INITIALIZING bit is cleared from
DeviceObject->Flags. This bit will prevent creates from reaching your
driver.

D

This posting is provided “AS IS” with no warranties, and confers no
rights.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Stevie-O
Sent: Monday, July 07, 2003 8:09 PM
To: NT Developers Interest List
Subject: [ntdev] Emulating a serial port

There were some relevant messages in the archives (10 years – what a
long time,
wow), but I found nothing useful.

I’m trying to make a virtual serial port under Windows 2000. (If anyone
should
wonder why I want to do something, the answer ‘I am insane’ should
suffice.)
Armed with the example ‘serial’ driver that comes with the Win2k DDK, I
have
produced something that almost produces a convincing serial port – with
the
minor exception that it doesn’t work. I registered the interface, I
created the
symlinks, I did everything I thought was necessary, but I wind up with
this:

C:\>mode com4
Device COM4 is not currently available.

Note that this differs from the ‘nonexistent device’ error:

C:\>mode com5
Illegal device name - COM5

When I try to view the information on the ‘\Device\JbrSer0’ object with
SysInternals’ WinObj, I get ‘unable to open device’, which I also get on
my real
serial ports when the port is in use.

My heavy use of DgbPrint() indicates that I never even get an
IPR_MJ_CREATE.

Is there anyone out there with some experience who would be willing to
help me
solve this problem?


You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Doron Holan wrote:

Make sure the DO_DEVICE_INITIALIZING bit is cleared from
DeviceObject->Flags. This bit will prevent creates from reaching your
driver.

D

Woohoo! That was it! They really oughta put something like that in bold print.

(Can you tell I’m new at this?)

What really threw me off was the fact that Device Mangler said the device was
working properly, when it obviously wasn’t.

You may waste 10 seconds of your life by checking out the screenshot:

http://www.qrpff.net/~stevie/jbrser/jbrserss.jpg

This posting is provided “AS IS” with no warranties, and confers no
rights.

Does that mean you won’t repair or replace your message, or refund my purchase
price (less S&H and a 20% restocking fee) if your message breaks down within 30
days? :wink:

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Stevie-O
Sent: Monday, July 07, 2003 8:09 PM
To: NT Developers Interest List
Subject: [ntdev] Emulating a serial port

There were some relevant messages in the archives (10 years – what a
long time,
wow), but I found nothing useful.

I’m trying to make a virtual serial port under Windows 2000. (If anyone
should
wonder why I want to do something, the answer ‘I am insane’ should
suffice.)
Armed with the example ‘serial’ driver that comes with the Win2k DDK, I
have
produced something that almost produces a convincing serial port – with
the
minor exception that it doesn’t work. I registered the interface, I
created the
symlinks, I did everything I thought was necessary, but I wind up with
this:

C:\>mode com4
Device COM4 is not currently available.

Note that this differs from the ‘nonexistent device’ error:

C:\>mode com5
Illegal device name - COM5

When I try to view the information on the ‘\Device\JbrSer0’ object with
SysInternals’ WinObj, I get ‘unable to open device’, which I also get on
my real
serial ports when the port is in use.

My heavy use of DgbPrint() indicates that I never even get an
IPR_MJ_CREATE.

Is there anyone out there with some experience who would be willing to
help me
solve this problem?

Yep - it’s a pretty irritating thing. I’ve missed it myself on a few
occasions.

However in device manager’s defense, the device is working properly.
It’s just that your device didn’t indicate that it was ready to accept
IO requests so none were let through.

Device Manager doesn’t do anything to divine the state of your device by
testing it - it just checks to see if your device has gone through PNP
start which it presumably had.

-p

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Stevie-O
Sent: Tuesday, July 08, 2003 12:20 AM
To: NT Developers Interest List
Subject: [ntdev] RE: Emulating a serial port

Doron Holan wrote:

Make sure the DO_DEVICE_INITIALIZING bit is cleared from
DeviceObject->Flags. This bit will prevent creates from reaching your
driver.

D

Woohoo! That was it! They really oughta put something like that in bold
print.

(Can you tell I’m new at this?)

What really threw me off was the fact that Device Mangler said the
device was working properly, when it obviously wasn’t.

You may waste 10 seconds of your life by checking out the screenshot:

http://www.qrpff.net/~stevie/jbrser/jbrserss.jpg

This posting is provided “AS IS” with no warranties, and confers no
rights.

Does that mean you won’t repair or replace your message, or refund my
purchase price (less S&H and a 20% restocking fee) if your message
breaks down within 30 days? :wink:

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Stevie-O
Sent: Monday, July 07, 2003 8:09 PM
To: NT Developers Interest List
Subject: [ntdev] Emulating a serial port

There were some relevant messages in the archives (10 years – what a
long time, wow), but I found nothing useful.

I’m trying to make a virtual serial port under Windows 2000. (If
anyone should wonder why I want to do something, the answer ‘I am
insane’ should
suffice.)
Armed with the example ‘serial’ driver that comes with the Win2k DDK,
I have produced something that almost produces a convincing serial
port – with the minor exception that it doesn’t work. I registered
the interface, I created the symlinks, I did everything I thought was
necessary, but I wind up with
this:

C:\>mode com4
Device COM4 is not currently available.

Note that this differs from the ‘nonexistent device’ error:

C:\>mode com5
Illegal device name - COM5

When I try to view the information on the ‘\Device\JbrSer0’ object
with SysInternals’ WinObj, I get ‘unable to open device’, which I also

get on my real serial ports when the port is in use.

My heavy use of DgbPrint() indicates that I never even get an
IPR_MJ_CREATE.

Is there anyone out there with some experience who would be willing to

help me solve this problem?


You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com