Complete IDE Disk Driver in Forth
colorforth.com
colorforth.com
I've been working against IOKit lately.
Universal - No
Serial - No
Bus - No
leave the USB alone, seriously, that's my advice
It looks like some people have already written Windows drivers, if you wanted to experiment you might look at writing a userspace driver for Linux.
It's kind of strange that they built something custom instead of just implementing it as a couple standard HID devices with an internal hub.
Depending on the USB chip/microcontroller used, it can be a lot easier to just toss in a bunch of vendor-specific requests instead of adhering to all the requirements of an HID-class device (though I haven't analyzed the Xbox controller itself, so I don't know if that's what was done).
Also, there's no need to use an internal hub, as a single USB device ("function" in the USB spec, IIRC) can have multiple "interfaces" that implement different (or the same) classes, such as HID, CDC, mass storage, or vendor-specific.
That said, you may find the following resources useful (I certainly have):
Linux Device Drivers (a very helpful book, but the kernel API has changed a bit since its release):
Windows Driver Development Kit (use Google to find the XP or Server 2003 versions if you need to develop for XP):
http://www.microsoft.com/whdc/devtools/WDK/default.mspx
libusb (write cross-platform USB drivers without touching kernel code):
http://libusb-win32.sourceforge.net/
If you want to create a new device that's worth writing drivers for, start here (the USB Bit Whacker):
http://www.sparkfun.com/commerce/product_info.php?products_i...
This makes it sound complicated to us modern folk because that complexity hasn't gone away; it's just been moved into the software layer.
I could write the same code in C and it would be just about as long.