USB device state. This enumeration represents all possible states
of the USB device physically attached to the host computer regarding
its state on the host computer and availability to guest computers
(all currently running virtual machines).
Once a supported USB device is attached to the host, global USB
) are activated. They can
either ignore the device, or put it to USBDeviceState_Held state, or do
nothing. Unless the device is ignored by global filters, filters of all
currently running guests (
activated that can put it to USBDeviceState_Captured state.
If the device was ignored by global filters, or didn't match
any filters at all (including guest ones), it is handled by the host
in a normal way. In this case, the device state is determined by
the host and can be one of USBDeviceState_Unavailable, USBDeviceState_Busy
or USBDeviceState_Available, depending on the current device usage.
Besides auto-capturing based on filters, the device can be manually
captured by guests (
) if its
state is USBDeviceState_Busy, USBDeviceState_Available or
Due to differences in USB stack implementations in Linux and Win32,
states USBDeviceState_Busy and USBDeviceState_Unavailable are applicable
only to the Linux version of the product. This also means that (
) can only succeed on Win32 if the
device state is USBDeviceState_Held.