@hailey ok so
at the top level, before usb-c, it's mostly easy to move the whole controller into the VM. That's a mostly self contained thing. It's doubly easy if it's behind an IO-MMU which virtualises all the DMA addressing.
however, moving a USB device is problematic. All the hub and port control would be done by your host OS. You'd have to tell the host OS to pass something in by rule, eg "hey any mass storage device on this physical controller? please map to the VM."