.NET C# USB library for WinUSB, LibUsb-Win32, and libusb-1.0. Using the common device classes, applications work with all operating systems and drivers without modification. Lots of example code. Open source software at sourceforge.net.
- Compatible with Windows: LibUsb-Win32, WinUSB, libusb-1.0 windows backend
- Compatible with Linux: libusb-1.0
- Built-in Device Notifier (Arrival and Removal notification)
Design of the API isn't very consistent and in some places really looking like it have been done by a C developer doing C# for the first time (Exceptions seem a foreign concept in this API) The consequence is that discovering the API either by the documentation or Intellisense is hardly doable. Some coding decisions (like having the last error strign accessible as a static field on the UsbError class) mean that it can't be used at all for serious multi threaded work. All of this is manageable anyway as the examples are helpful to see the little specificities of the API. Also being an open source project that wrap another open source project, you could always hunt for a solution to most problems directly by ack/grep in the source code.