Prev: NdisMSetMiniportAttributes Fails With NDIS 6.1 Miniport
Next: WINDDK help fails to start w/ cannot open the file ...\winddk.col
From: francois on 28 Mar 2008 09:39 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 28 Mar 2008 12:22 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 28 Mar 2008 12:24 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 28 Mar 2008 18:16 > > 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 28 Mar 2008 18:49
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). > > > > |