[Spice-devel] Usb redirection
Jackson
jyhyen at gmail.com
Wed Dec 26 22:23:25 PST 2012
OK! in my situation, my webcam can redirect to VM, then, I open amcap and check
the code. I find that there are two ways running into the same for loop, and I'm
not sure it is normal or not?
first route
the client receive message through usbredir channel, then
1. usbredir_handle_msg
2. usbredirparser_do_read
3. case usb_redir_stop_interrupt_receiving:
parser->callb.stop_interrupt_receiving_func(...)
4. usbredirhost_stop_interrupt_receiving
5. usbredir_write_flush_callback
6. usbredirparser_do_write
7. in loop, for(;;){}
second route
another thread run while loop
rc = libusb_handle_events(priv->context);
1. spice_usb_device_manager_usb_ev_thread
2. libusb_handle_events
3. libusb_handle_events_timeout_completed
4. handle_events
5. windows_handle_events
6. windows_handle_callback
case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
windows_transfer_callback(itransfer, io_result, io_size);
7. windows_transfer_callback
8. usbi_handle_transfer_completion
9. usbredirhost_interrupt_packet_complete
10. usbredir_write_flush_callback
11. usbredirparser_do_write
12. in loop, for(;;){}
More information about the Spice-devel
mailing list