OK, let me add my two cents. If you don't care about XP or earlier, have control over the device's firmware, and can live with WinUSB as a driver, then WCID [1] is the way to go (which is what Xiaofan alluded to with the "use Microsoft OS Descriptor", expect he forgot that the automated drive installation has ceased to be the realm of Windows 8 only since MS pushed a Vista and Windows 7 update in May 2012).
Seriously, in Windows 8, plug a WCID device and it'll just works with libusbx. No driver installation, no delay, no nothing - as close to instant access as OS-X and Linux have been providing for years. In Windows 7 and Vista, it's almost the same, except for the instantaneous part, at least the first time around. The reason is that, unlike what is the case for Windows 8, the OS will need to download some parts from the Windows Update server, but this is a one of operation, and most people are expected to have internet access to be able to do so. The important part there again is that the OS will do the driver installation automatically, and the user doesn't have to do a thing. So I would say, if you choose to disregard the soon to be obsoleted Windows XP [2], and have control over the device's firmware, you should seriously look into WCID, as it'll let you use libusbx across Linux, OS-X and Windows, and with the same level of driver installation involvement from your users. Now, if you have control over the firmware but care about XP , then the second best choice will probably be to bastardize HID to suit your needs. Of course if you want cross platform access that includes OS-X support, since libusbx doesn't have an HID backend on OS-X, you'll probably have to pick up another library (or, if you want to look into bringing an HID backend to libusbx/OS-X, we'll be happy to hear from you). Finally, if you have no control over the firmware, then you'll have no choice but to involve your users with the driver installation process, at least on Windows, though that may also give you greater control with regards to the driver. Plus there exists a tool that can help your users there [3], [4] through a simple (usually) 2 click process (allow elevation, click "Install Driver") that also avoid having to deal with the whole signed driver circus. Hopefully, after you have a closer look at each one of them, you will find the option that's right for you. Regards, /Pete [1] https://github.com/pbatard/libwdi/wiki/WCID-Devices [2] http://windows.microsoft.com/en-us/windows/products/lifecycle#section_2 [3] https://sourceforge.net/projects/libwdi/files/zadig/ [4] https://github.com/pbatard/libwdi/wiki/Zadig ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel