Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

IoGetDeviceProperty returns STATUS_OBJECT_NAME_NOT_FOUND

0 views
Skip to first unread message

francois

unread,
Mar 27, 2008, 6:19:44 AM3/27/08
to
In the AddDevice() handler from our driver for USB device, we call the
IoGetDeviceProperty() and it returns STATUS_OBJECT_NAME_NOT_FOUND.

We use the same PhysicalDeviceObject given as a parameter in the
AddDevice() handler.

Can you see one possible reason for this ?

Our driver is BDA driver with USB WDM lower edge. The strange thing is
that problem occurs only on Windows 2000 platform with USB composite
device. On Windows XP/Vista, or if the device exposes only one single
USB interface, the call to IoGetDeviceProperty() is successful.

Thanks for your help
Francois

chris.a...@gmail.com

unread,
Mar 27, 2008, 10:23:36 AM3/27/08
to
On Mar 27, 5:19 am, francois <fkanounnik...@yahoo.fr> wrote:

> Our driver is BDA driver with USB WDM lower edge. The strange thing is
> that problem occurs only on Windows 2000 platform with USB composite
> device. On Windows XP/Vista, or if the device exposes only one single
> USB interface, the call to IoGetDeviceProperty() is successful.

Which property are you trying to pull?

francois

unread,
Mar 27, 2008, 10:52:21 AM3/27/08
to
We are trying to pull "DevicePropertyBusTypeGuid" property

Doron Holan [MSFT]

unread,
Mar 27, 2008, 2:25:59 PM3/27/08
to
is it a multi function device and usbccgp is your parent driver?

--
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" <fkanou...@yahoo.fr> wrote in message
news:9f7069d1-654f-4457...@d4g2000prg.googlegroups.com...

francois

unread,
Mar 27, 2008, 4:37:07 PM3/27/08
to
Yes, it is a multifunction USB device.

The parent driver is usbccgp.sys on Windows XP. On Windows 2000, it
should be usbhub.sys.

francois

unread,
Mar 28, 2008, 9:39:25 AM3/28/08
to
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.

chris.a...@gmail.com

unread,
Mar 28, 2008, 12:22:16 PM3/28/08
to
On Mar 28, 8:39 am, francois <fkanounnik...@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

chris.a...@gmail.com

unread,
Mar 28, 2008, 12:24:13 PM3/28/08
to
On Mar 27, 9:52 am, francois <fkanounnik...@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..

francois

unread,
Mar 28, 2008, 6:16:41 PM3/28/08
to
> > 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).


Doron Holan [MSFT]

unread,
Mar 28, 2008, 6:49:16 PM3/28/08
to
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" <fkanou...@yahoo.fr> wrote in message

news:6c2a8a1d-f8e7-4423...@p25g2000hsf.googlegroups.com...

francois

unread,
Mar 29, 2008, 3:49:10 AM3/29/08
to
On Mar 28, 11:49 pm, "Doron Holan [MSFT]"

<dor...@online.microsoft.com> wrote:
> 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
>


Thank you Doron. On Vista, everything works fine. The problem occurs
on Windows 2000 only.

francois

unread,
Mar 31, 2008, 6:53:43 AM3/31/08
to
I tried to pull DevicePropertyDeviceDescription instead of
DevicePropertyBusTypeGuid, and IoGetDeviceProperty returned
STATUS_SUCCESS.
This confirms DevicePropertyBusTypeGuid is maybe not handled by USBHUB
parent driver.

0 new messages