device filtering support

Pete Batard pete at akeo.ie
Mon Feb 6 06:20:18 EST 2012


On 2012.02.06 08:52, Xiaofan Chen wrote:
> The firmware is buggy since after it transfers some endpoint data
> and then all subsequent device descriptor request will fail and then
> the device goes to an unstable state.
>
> We changed libusb-win32 driver in 1.2.5.0 to cache the
> device descriptor to solve the issue.

Is compensating for buggy firmwares something we really want to consider 
doing with libusbx?

> The current libusb-1.0 implementation will cause big problems
> for this kind of buggy device since libusb-1.0/libusbx program may
> request descriptor even though it is not the device of interests.

But couldn't the OS request the descriptor at any time as well? There's 
nothing in the Windows specs that says device descriptors will be read 
only once.

The issue I see is that someone wrote a firmware that seems to expect 
only one descriptor request per session, and will set the device in an 
unusable state otherwise. That's pretty bad. The minute someone uses an 
USB diagnostic tool on Windows, your device is cooked, and it will still 
be the case no matter the workarounds we apply to libusbx.

Or are people on Windows forbidden to run diagnostics tools ever?
Compensating for bad assumptions from device firmware writers seems a 
little bit outside of our mandate.

Regards,

/Pete



More information about the libusbx mailing list