Skip to main content

VirtualUsb

Struct VirtualUsb 

Source
pub struct VirtualUsb {
    pub virtual_device_: VirtualDevice,
    pub connected: bool,
    pub vendor: Option<i32>,
    pub product: Option<i32>,
    pub family: Option<Vec<String>>,
    pub speed: Option<Vec<String>>,
}
Expand description

The VirtualUSB data object describes the USB device configuration for a virtual machine.

You can attach a USB device to an ESX host. The device is available to only one virtual machine at a time. When you remove the device from the virtual machine, it becomes available to other virtual machines located on the host. You can add up to 20 USB devices to a virtual machine. Virtual USB support requires virtual machine hardware version 7 or later.

The VirtualUSB object represents either a configuration to be applied to the virtual machine or the current device configuration on the virtual machine.

  • To configure a USB connection for the virtual machine, add a VirtualUSB object to the VirtualDeviceConfigSpec. Use USB backing (VirtualUSBUSBBackingInfo) to establish a connection with a virtual machine that will remain on the host to which the USB device is attached. The vSphere Server does not support vMotion for standard USB backing. To configure vMotion support for a virtual machine with a USB connection, use remote host backing for the USB connection (VirtualUSBRemoteHostBackingInfo).

    To configure a USB device for a virtual machine, the virtual machine must have a USB controller. To add a controller, include a VirtualUSBController object in the virtual device specification for your virtual machine configuration. You can add only one USB controller to a virtual machine.

  • To determine USB device configuration status for the virtual machine, check the virtual hardware device list (VirtualHardware.VirtualHardware.device). The presence of the VirtualUSB object in the hardware device list indicates that the virtual machine is configured to use a USB device. The VirtualUSB.connected property indicates whether the virtual machine is connected to the device.

To determine the USB options available on the host, use the EnvironmentBrowser.QueryConfigOption method to retrieve the virtual machine configuration. The presence of the VirtualUSBOption object in the retrieved configuration (VirtualMachineConfigOption.VirtualMachineConfigOption.hardwareOptions.VirtualHardwareOption.virtualDeviceOption) indicates that the host supports USB connections.

The following operations will disconnect a USB device, losing data if data transfer is in progress over the USB connection.

  • Hot add of memory, CPU, or PCI devices. A hot add operation disconnects only USB devices for virtual machines that use a local connection to the device (VirtualUSBUSBBackingInfo).
  • Suspend and resume on a virtual machine.
  • vMotion of a virtual machine with a USB connection, if you are not using remote host USB backing.

The following services do not support USB connections.

  • Fault Tolerance virtual machines cannot use USB devices.
  • DPM (Distributed Power Management) will put a host into standby, regardless of any connections to USB devices on the host.
  • DRS (Distributed Resource Scheduling) may power-off hosts that have USB connections to virtual machines.

§How to access

  • VirtualMachine::config.hardware.device?[*]→VirtualUsb
  • StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device→VirtualUsb
  • StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device→VirtualUsb
  • StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device→VirtualUsb
  • StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device→VirtualUsb
  • StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device→VirtualUsb
  • ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device→VirtualUsb
  • ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device→VirtualUsb
  • ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device→VirtualUsb
  • ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device→VirtualUsb

(10 of 65 paths)

Fields§

§virtual_device_: VirtualDevice§connected: bool

Flag indicating whether the device is currently connected.

The virtual machine is not connected to the device if the autoconnect pattern specified in the USB device backing (VirtualDeviceDeviceBackingInfo.VirtualDeviceDeviceBackingInfo.deviceName) can not be satisfied, either because there is no such device, or the matching device is not available. Valid only while the virtual machine is running.

§vendor: Option<i32>

Vendor ID of the USB device.

§product: Option<i32>

Product ID of the USB device.

§family: Option<Vec<String>>

Device class families.

For possible values see VirtualMachineUsbInfoFamily_enum.

§speed: Option<Vec<String>>

Device speeds detected by server.

For possible values see VirtualMachineUsbInfoSpeed_enum.

Trait Implementations§

Source§

impl Debug for VirtualUsb

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for VirtualUsb

Source§

type Target = VirtualDevice

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for VirtualUsb

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl Deserialize for VirtualUsb

Source§

fn begin(out: &mut Option<Self>) -> &mut dyn Visitor

The only correct implementation of this method is: Read more
Source§

impl Serialize for VirtualUsb

Source§

fn begin(&self) -> Fragment<'_>

Source§

impl VimObjectTrait for VirtualUsb

Source§

impl VirtualDeviceTrait for VirtualUsb

Source§

fn get_virtual_device(&self) -> &VirtualDevice

Get a reference to the VirtualDevice parent struct
Source§

fn get_virtual_device_mut(&mut self) -> &mut VirtualDevice

Get a mutable reference to the VirtualDevice parent struct
Source§

impl DataObjectTrait for VirtualUsb

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: 'static,

Source§

fn as_any_ref<'a>(&'a self) -> &'a (dyn Any + 'static)

Cast a reference to Any trait.

Source§

fn as_any_box(self: Box<T>) -> Box<dyn Any>

Cast to a boxed reference to Any trait.

Source§

fn type_id(&self) -> TypeId

Get the underlying type identifier.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<To, T> CastInto<To> for T
where To: CastFrom<T> + ?Sized, T: 'static + ?Sized,

Source§

fn into_ref<'a>(&'a self) -> Option<&'a To>

Casts a reference to a trait object. If the cast fails, std::option::Option::None is returned.
Source§

fn into_box(self: Box<T>) -> Result<Box<To>, Box<dyn Any>>

Casts a boxed trait object to another trait object. If the cast fails, the original boxed trait object is returned in std::result::Result::Err.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,