USB device shareing driver config accross ports

This is truely strange. USB drivers are suppose to install per port
and device type but I have an X36 joystick and throttle that is
sharing driver config accross ports. Is this device doing something
specific to cause this? I have tried it on a couple machines with
the same result.

Gamepads that I plug into the hub all enumerate according to the
device and port. I could have sworn that the X36 behaved that way
before… Every other USB device that I have know install drivers
for each port pluged into. I have never seen a device share driver
config before.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Chris Telting
Subject: [ntdev] USB device shareing driver config accross ports
This is truely strange. USB drivers are suppose to install per port
and device type but I have an X36 joystick and throttle that is
sharing driver config accross ports. Is this device doing something
specific to cause this? I have tried it on a couple machines with
the same result.

In Win2K, mice and keyboards are special devices. The system aggregates
multiple devices into a single large device. It is possible that joysticks
are treated the same as mice. You can have multiple mice, but if you move
any, the cursor will move the same for the last added as the first. There
is no way without a filter driver to distinguish between them.

Game pads that I plug into the hub all enumerate according to the
device and port. I could have sworn that the X36 behaved that way
before… Every other USB device that I have know install drivers
for each port pluged into. I have never seen a device share driver
config before.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> In Win2K, mice and keyboards are special devices. The system aggregates

multiple devices into a single large device. It is possible that joysticks
are treated the same as mice. You can have multiple mice, but if you move
any, the cursor will move the same for the last added as the first. There
is no way without a filter driver to distinguish between them.

But every mice and keyboards are installed per port. You’ll see the popup
when you plug in the device to a new port. Doesn’t happen with this one
joystick. All other similar devices enumerate per port. Not sure if it’s
something I did. Either way it’s pretty interesting. I might even desire
to use that functionality accross other devices; that is to only support
one driver configuration and not need my drivers to be installed on a bunch
of ports.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

If the USB device has a serial number string descriptor, and the device
descriptor points to it, then the device can be uniquelly identified to the
system no matter which port it’s in.

-Tim

Timothy A. Johns — xxxxx@driverdev.com
Driver Development Corporation — 800.841.0092
Bring Up Your Hardware — Fast. www.driverdev.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Chris Telting
Sent: Tuesday, June 05, 2001 8:22 AM
To: NT Developers Interest List
Subject: [ntdev] RE: USB device shareing driver config accross ports

> In Win2K, mice and keyboards are special devices. The system aggregates
> multiple devices into a single large device. It is possible
that joysticks
> are treated the same as mice. You can have multiple mice, but
if you move
> any, the cursor will move the same for the last added as the
first. There
> is no way without a filter driver to distinguish between them.

But every mice and keyboards are installed per port. You’ll see the popup
when you plug in the device to a new port. Doesn’t happen with this one
joystick. All other similar devices enumerate per port. Not sure if it’s
something I did. Either way it’s pretty interesting. I might even desire
to use that functionality accross other devices; that is to only support
one driver configuration and not need my drivers to be installed
on a bunch
of ports.


You are currently subscribed to ntdev as: xxxxx@driverdev.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> If the USB device has a serial number string descriptor, and the device

descriptor points to it, then the device can be uniquelly identified to the
system no matter which port it’s in.

Yes, indeed. I’m just wondering why and how this device is acting
like this. Thanks for the input.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Chris,

That’s what I mean - since the USB bus driver can uniquelly identify the
device in any port, it does not need to re-associate the driver each time
the device is moved from port to port. See IRP_MN_QUERY_ID for a brief
comment on this capability.

-Tim

Timothy A. Johns — xxxxx@driverdev.com
Driver Development Corporation — 800.841.0092
Bring Up Your Hardware — Fast. www.driverdev.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Chris Telting
Sent: Tuesday, June 05, 2001 11:16 AM
To: NT Developers Interest List
Subject: [ntdev] RE: USB device shareing driver config accross ports

> If the USB device has a serial number string descriptor, and the device
> descriptor points to it, then the device can be uniquelly
identified to the
> system no matter which port it’s in.

Yes, indeed. I’m just wondering why and how this device is acting
like this. Thanks for the input.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> That’s what I mean - since the USB bus driver can uniquelly identify the

device in any port, it does not need to re-associate the driver each time
the device is moved from port to port. See IRP_MN_QUERY_ID for a brief
comment on this capability.

But I’m wondering what causes the behavior so that I might be able
to duplicate it with other devices and drivers. I don’t have a
problem with the behavior. I actually kind of like it but I’m puzzled
why the OS is not folling the standard behavior of installing drivers
per port.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Chris,

To duplicate it, the bus driver for the bus you’re device is on probably has
to return a unique ID in response to an IRP_MN_QUERY_ID. If the bus driver
doesn’t already do this, it’s a tough (although not necessarily impossible)
scenario, since the OS sends the IRP_MN_QUERY_ID before the function driver
is loaded (meaning your regular function driver can’t modify it).

I strongly suspect that the USB bus driver already returns a unique ID if
your device has the serial number string descriptor, so to reproduce the
behavior in USB, just modify the devices’ firmware to contain the serial
number string descriptor. If the device does NOT have that serial number
string descriptor, the association is done on a per-port basis.

Other bus types with OS-supplied bus drivers might also make use of a unique
ID. For example, PCI has this capability, also (using VPD Device Part
Number), but I don’t know if the PCI bus driver makes use of this, and it’s
not nearly as critical with PCI (except perhaps Compact PCI Hot Swap) since
users don’t typically move the cards around in the machine after the initial
installation.

-Tim

Timothy A. Johns — xxxxx@driverdev.com
Driver Development Corporation — 800.841.0092
Bring Up Your Hardware — Fast. www.driverdev.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Chris Telting
Sent: Tuesday, June 05, 2001 11:11 PM
To: NT Developers Interest List
Subject: [ntdev] RE: USB device shareing driver config accross ports

> That’s what I mean - since the USB bus driver can uniquelly identify the
> device in any port, it does not need to re-associate the driver
each time
> the device is moved from port to port. See IRP_MN_QUERY_ID for a brief
> comment on this capability.

But I’m wondering what causes the behavior so that I might be able
to duplicate it with other devices and drivers. I don’t have a
problem with the behavior. I actually kind of like it but I’m puzzled
why the OS is not folling the standard behavior of installing drivers
per port.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com