Installation of non-PNP legacy serial devices?

Discussion in 'Windows Vista Drivers' started by Victor B. Putz, Jan 12, 2004.

  1. 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
     
    Victor B. Putz, Jan 12, 2004
    #1
    1. Advertisements

  2. 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 Yakub [MSFT], Jan 13, 2004
    #2
    1. Advertisements

  3. Victor B. Putz

    Guest Guest

    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
     
    Guest, Jan 14, 2004
    #3
  4. Am I thinking along the right lines, or did I misinterpret
    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 Yakub [MSFT], Jan 15, 2004
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.