The WinUsbNet class library gives .NET managed code direct access to USB devices through WinUSB, the generic USB device driver included with Windows. It is now available on CodePlex:
http://winusbnet.codeplex.com/The target audience is developers who are creating their own USB device. Providing the class library as a fully documented, ready-to-run DLL isolates the developer from any dealings with unmanaged Windows interfaces. The package even includes a utilty to build the necessary device driver installation file (INF), and a test application.
In developing this, I started with Jan Axelson's
winusb_cs project at
http://www.janaxelson.com/winusb.htm to learn the native interfaces.