Device represents a USB device.
DmaBuffer represents a DMA buffer lent by a device
ManagedDmaBuffer represents the entire DMA buffer allocated by a device
Transfer contains the information necessary to submit a USB request
and, once it has been submitted and completed, contains the response.
TransferHandle is a handle that allows cancellation of in-flight transfers
between submit_transfer() and get_completed_transfer().
Attempting to cancel a transfer that has already completed is safe and will
return an error.