Dear ALL,

I am working for company, which creates high-speed USB devices using
Cypress microcontrollers. To reprogram Cypress firmware I need to send
it several specially formatted USB control requests. My goal is to
develop universal application and may be driver (if unavoidable), to
reflash our devices during testing and in the field. It would be nice
to have such application because firmware update implemented by
Cypress microcontroller in hardware and do not depend on whatever junk
we loaded it with previous time.

I figured out, that all USB devices support interface with GUID
{a5dcbf10-6530-11d2-901f-00c04fb951ed}, which is
GUID_DEVINTERFACE_USB_DEVICE. Is there any way to get anything useful
out of this device interface? I figured out, that it is exported by
usbhub.sys driver and get created even if no driver loaded for USB
device. I can open this device with CreateFile() Win32 API call, but
that is all. I tried to open this link from one of my drivers and use
the object returned by ObReferenceObjectByHandle() as lower physical
device object to send URBs to, but it didn't work.

As a last resort, I can develop USB filter driver if anything simple
would not work for me, but I am not sure if I will get access to USB
device without driver loaded.

Thanks for reading my message :) I will really appreciate any help on
the issue.

Thanks for your time,
With best regards,
Vladimir S. MIrgorodsky

Re: Default USB interface by Doron

Doron
Thu Nov 04 10:06:34 CST 2004

the default usb device interface is ther purely for enumeration , it does
not provide any of the facilities you require. since this is your device,
there is no need for filter. load the firmware download driver, download
the firmware.

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.


<v_mirgorodsky@yahoo.com> wrote in message
news:4751a2c2.0411040226.3041e1e4@posting.google.com...
> Dear ALL,
>
> I am working for company, which creates high-speed USB devices using
> Cypress microcontrollers. To reprogram Cypress firmware I need to send
> it several specially formatted USB control requests. My goal is to
> develop universal application and may be driver (if unavoidable), to
> reflash our devices during testing and in the field. It would be nice
> to have such application because firmware update implemented by
> Cypress microcontroller in hardware and do not depend on whatever junk
> we loaded it with previous time.
>
> I figured out, that all USB devices support interface with GUID
> {a5dcbf10-6530-11d2-901f-00c04fb951ed}, which is
> GUID_DEVINTERFACE_USB_DEVICE. Is there any way to get anything useful
> out of this device interface? I figured out, that it is exported by
> usbhub.sys driver and get created even if no driver loaded for USB
> device. I can open this device with CreateFile() Win32 API call, but
> that is all. I tried to open this link from one of my drivers and use
> the object returned by ObReferenceObjectByHandle() as lower physical
> device object to send URBs to, but it didn't work.
>
> As a last resort, I can develop USB filter driver if anything simple
> would not work for me, but I am not sure if I will get access to USB
> device without driver loaded.
>
> Thanks for reading my message :) I will really appreciate any help on
> the issue.
>
> Thanks for your time,
> With best regards,
> Vladimir S. MIrgorodsky