USBAsyncResult public so an app can actually check out what happend to a USB request using the IAsyncResult
Slightly more informative error message in PipeIOCallback
ignore vi swap files, bin and obj