<!--
{
  "documentType" : "article",
  "framework" : "Virtualization",
  "identifier" : "/documentation/Virtualization/usb-devices",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "USB Devices"
}
-->

# USB Devices

## Topics

### Storage Devices

[`VZUSBMassStorageDevice`](/documentation/Virtualization/VZUSBMassStorageDevice)

A class that represents a hot-pluggable USB mass storage device.

[`VZUSBPassthroughDevice`](/documentation/Virtualization/VZUSBPassthroughDevice)

### Configurations

[`VZUSBControllerConfiguration`](/documentation/Virtualization/VZUSBControllerConfiguration)

The base class for a USB controller configuration.

[`VZXHCIControllerConfiguration`](/documentation/Virtualization/VZXHCIControllerConfiguration)

The configuration object for the USB Extensible Host Controller Interface (XHCI) controller.

[`VZUSBPassthroughDeviceConfiguration`](/documentation/Virtualization/VZUSBPassthroughDeviceConfiguration)

### Controllers

[`VZUSBController`](/documentation/Virtualization/VZUSBController)

A class that represents a USB controller in a VM.

[`VZXHCIController`](/documentation/Virtualization/VZXHCIController)

A class that represents a USB Extensible Host Controller Interface (XHCI) controller in a VM.

### Protocols

[`VZUSBDevice`](/documentation/Virtualization/VZUSBDevice)

A protocol that represents a USB device in a VM.

[`VZUSBDeviceConfiguration`](/documentation/Virtualization/VZUSBDeviceConfiguration)

The protocol for configuring USB devices.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)