USB is just a bus. The way you communicate with the device depends on the chip on the other side of the bus. There is no standardized way to communicate with all devices.
If the USB device vendor wants to expose the device in a standard way (most of them are compliant with the standards to save the cost of developing, documenting and training customers regarding their APIs), their driver programmers can write drivers that make the device available for different Windows APIs (massive storage, WIA, DirectShow, virtual serial port, Bluetooth, user interface device, etc.). Again, since standardized drivers are already open for the Windows API, there is no need for .Net to speak directly to the hardware.
source share