To quote a very knowledgeable NI developer, for RAW USB here is a good place to get started:
A good place to start is with this USB Instrument Control Tutorial (http://zone.ni.com/devzone/cda/tut/p/id/4478). It covers most of the basics in order to create the USB INF file, so the device will show up in the Windows Device Manager and MAX as a NI-VISA USB Raw device. An important note that a lot of people over look, is that in order for you to use NI-VISA to control the USB device, NI-VISA will be the sole driver. aka, if your device already has a driver you won't be able to use it and NI-VISA at the same. Programming a USB device is more similar to register level programming a PCI device, you can't just send ASCII messages to it like a serial port unless your device complies with something like the USBTMC or USB488 spec. You may already be aware of this, but I figured I would just throw it out there.
Here are a few other documents that you may want to get familar with if you are going to communicating with a USB device through VISA.
http://www.beyondlogic.org/usbnutshell/usb-in-a-nutshell.pdf - read this one front to back before starting
http://www.usb.org/developers/docs/ - If you need more details then what is covered by the usb-in-a-nutshell document. I would suggest reading chapters 1-5 and 9.
http://www.hhdsoftware.com/Products/home/usb-monitor.html - Similar to NI-Spy, but it actually snoops the data being sent of the USB port. You can use it to verify that you did indeed send what you thought you sent and to see if the instrument is sending back what you thought it should. I highly recommend purchasing a copy of this if you really intend to create a USB driver.