Some time ago, I wrote a filter driver for a legacy game
device, the Spacetec SpaceOrb 360. It relied on the serial
PNP system and installed itself based on the detected
device (similar to, I think, the mouser example).

Unfortunately, after release I discovered that many older
models of this device are NOT detected by XP on initial
boot. The initial driver worked OK, it just couldn't be
installed because XP never asked for the driver.

My first attempts at fixing this got out of hand quickly (I
installed an enumeration driver that latched into the port
enumeration system, grabbed new ports, queried them for the
device, and released them if it didn't exist). It worked
well but was way too complicated and also had the minor
problem of totally locking up the system when the device
was unplugged.

I want this to be as simple as possible. Are there
examples out there of how to force installation of a legacy
device onto an existing serial port? I want the user to be
able to say "I have this device on COM1:" and install it
there without relying on PNP to find the settings (it
should still work the PNP way, though...).

-->VPutz

Re: Installation of non-PNP legacy serial devices? by Eliyas

Eliyas
Mon Jan 12 22:53:36 CST 2004

You can programmatically root-enumerate your driver and open the com port in
kernel-mode. The devcon sample in the DDK shows how to root-enumerate a
driver.

--
--
-Eliyas
This posting is provided "AS IS" with no warranties, and confers no rights.




"Victor B. Putz" <vputz@nyx.net> wrote in message
news:2ff201c3d943$f93433d0$3101280a@phx.gbl...
> Some time ago, I wrote a filter driver for a legacy game
> device, the Spacetec SpaceOrb 360. It relied on the serial
> PNP system and installed itself based on the detected
> device (similar to, I think, the mouser example).
>
> Unfortunately, after release I discovered that many older
> models of this device are NOT detected by XP on initial
> boot. The initial driver worked OK, it just couldn't be
> installed because XP never asked for the driver.
>
> My first attempts at fixing this got out of hand quickly (I
> installed an enumeration driver that latched into the port
> enumeration system, grabbed new ports, queried them for the
> device, and released them if it didn't exist). It worked
> well but was way too complicated and also had the minor
> problem of totally locking up the system when the device
> was unplugged.
>
> I want this to be as simple as possible. Are there
> examples out there of how to force installation of a legacy
> device onto an existing serial port? I want the user to be
> able to say "I have this device on COM1:" and install it
> there without relying on PNP to find the settings (it
> should still work the PNP way, though...).
>
> -->VPutz
>



Re: Installation of non-PNP legacy serial devices? by anonymous

anonymous
Wed Jan 14 16:55:43 CST 2004

Elias! Bless your ever-patient soul, I think you were
answering these questions two years ago when I did the
first version.

[root-enumerate my device]

Just to clarify--the way you phrased this made me think you
had this sequence in mind:

1) My device driver is installed (but does not do anything)
2) I use a user-space program to enumerate/find my device
and give it a "configuration message" of some sort to use Com1
3) My device driver receives that message and opens Com1
in kernel mode (using something like IoGetDevicePointer
maybe?).

Am I thinking along the right lines, or did I misinterpret
your message?

Many thanks, as always,
-->VPutz


Re: Installation of non-PNP legacy serial devices? by Eliyas

Eliyas
Thu Jan 15 00:10:16 CST 2004

> Am I thinking along the right lines, or did I misinterpret
> your message?
>

Nope, you are along the right lines. You can also enumerate the ports and do
the device detection in kernel-mode. No need for the usermode app.

--
--
-Eliyas
This posting is provided "AS IS" with no warranties, and confers no rights.