Hans de Goede & Gerd Hoffmann:
theses days i try to migrate the usbredir lib to Windows the usbredir-0.6/usbredirserver/usbredirserver.c connect to qemu's redirect channel and spicec connect to the guest. the usbredirserver works smooth in Linux, spicec show the usb disk works well. when i compile usbredir on Windows, usbredirserver connect and open usb device ok, qemu's guest(windows xp) in spicec can detect the usb device, but only show unkown usb device, i open the device in windows's hardware manager, and found the pid and vid of the device is 000. i debug the qemu's redirect code(hw/usb/hcd_ehci.c), and found the diff between linux's and windows's when usbredirserver connect is here: ----------------------------------------------------------------------------------------- static int ehci_execute(EHCIPacket *p, const char *action) ............... p->pid = ehci_get_pid(&p->qtd); p->queue->last_pid = p->pid; endp = get_field(p->queue->qh.epchar, QH_EPCHAR_EP); //When windows it always return 0 ///while Linux it will return 0, 1 or 2 ep = usb_ep_get(p->queue->dev, p->pid, endp); ------------------------------------------------------------------------------------------- i found the qh.epchar read from dma, but can not find who write it, can you explain it the flow of the function. how doest usbredirect control the dma ? thanks you tow very much.
_______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel