graphic: 0.632 device: 0.620 instruction: 0.541 socket: 0.524 other: 0.478 network: 0.399 vnc: 0.390 mistranslation: 0.367 KVM: 0.339 boot: 0.301 semantic: 0.266 assembly: 0.161 Guest WinXP crashes when trying to use a USB spectrometer I'm using Amadeus spectrometer (OceanOptics USB250) via Windows-based software "Quantum". I've tried six ways of attaching it to QEMU: 1. command line parameter "-device usb-host,hostbus=3,hostaddr=25" 2. command line parameter "-device usb-host,vendorid=0x2457,productid=0x1030" 3. command line parameter "-usbdevice host:2457:1030 4. command line parameter "-usbdevice host:3.25" 5. qemu console command "usb_add host:2457:1030" 5. qemu console command "usb_add host:3.25" From these, only "-device ..." options work, i.e. numbers 1 and 2 in the list above, and all others lead to IRQL_NOT_LESS_OR_EQUAL BSOD in usbuhci.sys when I launch Quantum, which tries to start acquiring spectra. I've also tried to reproduce the crash with a flash drive, but couldn't — it seems to work reliably in this case. Which version is used? Try the latest QEMU or at least QEMU 2.0. The behavior sounds like a pretty old QEMU version. Additionally, enable the EHCI controller (see example in the docs subdirectory). It it working on a native Windows XP? I was using QEMU from git, v2.3.0-rc2, when reporting this bug. And this is the same since much earlier (about a year older) version. And of course I do enable EHCI controller via `-device usb-ehci`. And checked it with native Windows XP, where the device works with no problem. Actually, as I said in OP, `-device hsb-host,...` options work in QEMU too, but the others like `-usbdevice host...` and `usb_add host...` don't. Please check that the devices get added to the EHCI bus and not to the UHCI. As far as I know the -usb* commands are deprecated. The functions behind the -device usb* and -usb* should behave the same. Indeed, the device appears added to the UHCI in both crashing cases and to EHCI in the working case. Also, sometimes instead of BSOD of guest OS I get abort of QEMU: qemu-system-i386: hw/usb/core.c:735: usb_ep_get: Assertion `pid == 0x69 || pid == 0xe1' failed. /usr/bin/qemuxp: line 4: 13514 Aborted (core dumped) qemu-system-i386 /home/ruslan/iso/Windoze/qemuxp.img -m 512 -display sdl -vga vmware -enable-kvm -usb -device usb-ehci $* here $* stands for -snapshot -hdb ~/iso/ntfs-data.img and the crash was triggered by using usb_add command in QEMU terminal and then attempting to access the device from WinXP. "-usbdevice host" and "usb_add host" have been removed with QEMU 2.12, so marking this bug as Wont-Fix.