2009/7/3 Michał Nazarewicz <m.nazarewicz@xxxxxxxxxxx>: > Actually, I have a RNDIS driver installed. If I compile the device with > Ethernet Gadget for instance, I can communicate with Windows via the RNDIS > protocol. Also, If I compile the mass storage I can treat the device as > mass storage. Problem is, I cannot seem to make Windows handle a composite > with RNDIS and mass storage. > > My guess is, neither mass storage nor RNDIS driver matches the device (as it > has both the functions not one of it) and so Windows tries to look for the > driver matching the vendor+product ID pair. Linux however, identifies > individual functions and assigns driver to them rather the whole device as > such. I'm not experienced with Windows so I'm not sure if that's the case > but it seem to make sens... > You may want to read this. http://msdn.microsoft.com/en-us/library/ms793564.aspx USB common class generic parent driver (usbccgp.sys) will handle the enumeration for your composite device. If the interface have windows built-in drivers (like HID, USB mass storage, etc), they will work automatically. For the other interface, you need the inf file to point to that interface (eg: USB\VID_0403&PID_6001&MI_00 means Interface 0 of device VID_0403&PID_6001; VID_0403&PID_6001&MI_01 will mean the Interface 1). What is the error message you get under Windows for your USB composite device? It should have three entries under Device Manager. One is USB Composite device (for the whole device), one is the USB mass storage device (for the USB mass storage interface) and the USB RNDIS device (for the RNDIS interface). -- Xiaofan http://mcuee.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html