[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