Hi,

I try to validate my USB-device by checking its descriptor entries. Thus I
added the following code to the IRP_MN_START_DEVICE routine:
UsbBuildGetDescriptorRequest(...);
IoBuildDeviceIoControlRequest(IOCTL_INTERNAL_USB_SUBMIT_URB,...);

This works so far, BUT analyzing the USB-transfers after plugging in the
device I get the following USB-stream:
1. SetAddress()
2. GetDescriptor(Device)
3. GetDescriptor(Configuration)
...
Now my Driver starts and I get another GetDescriptor(Device).

Is it somehow possible to get the USB-descriptors from the lower USB-Bus
driver without resending a GetDescriptor-request to the USB-device? Or is it
some odd behavior of the Host-Controll-Driver?

Thank you for your help
Emanuel

Re: Retrieve USB_DEVICE_DESCRIPTOR only once from USB-device by chris

chris
Fri Dec 07 09:12:52 PST 2007

On Dec 7, 6:01 am, Emanuel <Eman...@discussions.microsoft.com> wrote:

> Is it somehow possible to get the USB-descriptors from the lower USB-Bus
> driver without resending a GetDescriptor-request to the USB-device? Or is it
> some odd behavior of the Host-Controll-Driver?

Why do you care if your device gets queried twice for its descriptors?

Re: Retrieve USB_DEVICE_DESCRIPTOR only once from USB-device by Doron

Doron
Fri Dec 07 12:58:35 PST 2007

the usb core queries for the descriptors b/c it needs to enumerate your
device. it needs the vid/pid and config information to build the right
hardware IDs. if your driver needs these descriptors, you query for them
yourself

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.


"Emanuel" <Emanuel@discussions.microsoft.com> wrote in message
news:C196D760-2478-42F3-B679-DD3C7D2583A5@microsoft.com...
> Hi,
>
> I try to validate my USB-device by checking its descriptor entries. Thus I
> added the following code to the IRP_MN_START_DEVICE routine:
> UsbBuildGetDescriptorRequest(...);
> IoBuildDeviceIoControlRequest(IOCTL_INTERNAL_USB_SUBMIT_URB,...);
>
> This works so far, BUT analyzing the USB-transfers after plugging in the
> device I get the following USB-stream:
> 1. SetAddress()
> 2. GetDescriptor(Device)
> 3. GetDescriptor(Configuration)
> ...
> Now my Driver starts and I get another GetDescriptor(Device).
>
> Is it somehow possible to get the USB-descriptors from the lower USB-Bus
> driver without resending a GetDescriptor-request to the USB-device? Or is
> it
> some odd behavior of the Host-Controll-Driver?
>
> Thank you for your help
> Emanuel
>