I’ve used USB Sniffer v1.8 to sniff USB bus transactions under Windows. It works, although generates very verbose output (and I have to copy the .log files to a unix box, where grep/sed/awk can actually make them useful. Yes, I know about cygwin, no, command line editing under windows still sucks).
I was told to give a free version of Bus Hound a try, especially for looking at IDE transactions. (BusHound supports alot more then just usb bus, and I was told that it’s quite good, which is a win, since I am thinking about foregoing using USB to IDE adapter, as using USB introduces extra data in bus traces, by wrapping around CDBs.)
P.S. Reading ATA/ATAPI 7 and MMC 6 specs gave me headaches. So I stopped.