The WinUsbNet class library gives .NET managed code direct access to USB devices through WinUSB, the generic USB device driver included with Windows.
This project is intended for developers who are creating their own USB device. Using WinUsbNet eliminates the need to understand anything about Windows device drivers. If you know what a USB endpoint is and can use the .NET Framework class Stream, you know enough to transfer data between your application and your USB device.
See full documentation at http://www.timpaterson.com/WinUsbNet/.
You can also download the documentation as a single compressed
HTML Help file WinUsbNet.chm
from the docs
folder.