From: francois on
I just figured out that when the device is multifunction, the parent
driver is usbhub.
But when the device just exposes one single USB interface, the parent
driver is usbhub20.

I can't see the reason why it is different, both devices are USB2.0.

From: chris.aseltine on
On Mar 28, 8:39 am, francois <fkanounnik...(a)yahoo.fr> wrote:

> I just figured out that when the device is multifunction, the parent
> driver is usbhub.
> But when the device just exposes one single USB interface, the parent
> driver is usbhub20.

Think about the conditions for getting the USB\COMPOSITE compatible
ID[1] (and thus getting usbhub.sys as your parent on Win2k):

1) Number of configurations == one

2) Number of interfaces > one

3) Device class/subclass/protocol == 0x00

Thus, if your device only exposes a single function, you're not going
to get the generic parent loaded for your device. (Also note that
this will only be decided at device installation time, and not every
time you plug in -- the device instance ID only contains VID and PID,
and nothing from the other descriptors.)

[1] http://msdn2.microsoft.com/en-us/library/aa476434.aspx
From: chris.aseltine on
On Mar 27, 9:52 am, francois <fkanounnik...(a)yahoo.fr> wrote:

> We are trying to pull "DevicePropertyBusTypeGuid" property

Why? You already know it's a USB device, aren't you going to get the
USB bus GUID every time?

Unless, of course, your driver is shared with 1394, or PCI, or
something equally insidious, perhaps..
From: francois on
> > We are trying to pull "DevicePropertyBusTypeGuid" property
>
> Why? You already know it's a USB device, aren't you going to get the
> USB bus GUID every time?
>
> Unless, of course, your driver is shared with 1394, or PCI, or
> something equally insidious, perhaps..

Indeed, our driver is supporting USB and PCI devices.
Thank you for your inputs.

If my understanding is correct, usbhub20 is expected to be the parent
driver for non-composite devices, and usbhub the parent driver for
composite devices if the 3 conditions you pointed are satisfied.

But do you see any reason why the call to IoGetDeviceProperty() would
failed ?
I figured out that IoGetDeviceProperty() was dereferencing some field
in the DevNode from the USBHUB DeviceObjectExtension. That field
(offsett 0x68 in the DevNode) equals 0xFFFF and the function returns
STATUS_OBJECT_NOT_FOUND.
That same field equals 0x0002 in the DevNode from USBHUB20
DeviceObjectExtension (non composite device).




From: Doron Holan [MSFT] on
this has nothing to do with the DeviceObjectExtension. For this property to
be returned, IRP_MJ_PNP/IRP_MN_QUERY_BUS_INFORMATION must be supported by
the bus driver. I am asking the usbccgp owner if it supports this function
on vista.

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"francois" <fkanounnikoff(a)yahoo.fr> wrote in message
news:6c2a8a1d-f8e7-4423-be5d-6595d5efab5e(a)p25g2000hsf.googlegroups.com...
>> > We are trying to pull "DevicePropertyBusTypeGuid" property
>>
>> Why? You already know it's a USB device, aren't you going to get the
>> USB bus GUID every time?
>>
>> Unless, of course, your driver is shared with 1394, or PCI, or
>> something equally insidious, perhaps..
>
> Indeed, our driver is supporting USB and PCI devices.
> Thank you for your inputs.
>
> If my understanding is correct, usbhub20 is expected to be the parent
> driver for non-composite devices, and usbhub the parent driver for
> composite devices if the 3 conditions you pointed are satisfied.
>
> But do you see any reason why the call to IoGetDeviceProperty() would
> failed ?
> I figured out that IoGetDeviceProperty() was dereferencing some field
> in the DevNode from the USBHUB DeviceObjectExtension. That field
> (offsett 0x68 in the DevNode) equals 0xFFFF and the function returns
> STATUS_OBJECT_NOT_FOUND.
> That same field equals 0x0002 in the DevNode from USBHUB20
> DeviceObjectExtension (non composite device).
>
>
>
>