Hello Xiaofan On 13/10/2012 11:33, Xiaofan Chen wrote: > It may not be as difficult as you think to make your firmware a > USB composite device. In you case, you need to add a second > interface (say Interface 1) without any endpoint associated > (basically just using the control endpoint). > > In this case, you can use winusb/libusbx with this Interface 1 > and USB Mass Storage with Interface 0. In that case, you > use interface 1 for your intended configuration data communication > through the control endpoint. > > Reference: > http://www.osronline.com/showthread.cfm?link=191818 > > What you need to change in your firmware are like the following. > 1) descriptor change to add Interface 1 > 2) in your firmware sections which deals with set-interface standard > request, you need to take care of both interface 0 and 1. > 3) For the vendor specific request (through control transfer), you > can deal it just like there is no interface 1. > > This is not a full-blown composite device framework but you > do not need that anyway. > >
Ah - now that sounds very promising. What I still do not get is how the WinUSB driver co-exists with the in-box mass storage stack? Can you load the WinUSB driver for the same VID/PID but use the 2nd interface while mass storage is loaded too? ------------------------------------------------------------------------------ Don't let slow site performance ruin your business. Deploy New Relic APM Deploy New Relic app performance management and know exactly what is happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at no cost today and get our sweet Data Nerd shirt too! http://p.sf.net/sfu/newrelic-dev2dev _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel