Search notes:

USB

USB is a bus for connecting external peripherals to a computer.
USB is successfull because of the standardized protocol.

Host controller devices

There are 4 main types of USB host controller devices (HDCs):
Typicall found on
UHCI Universal Host Controller Interface. Supports USB 1.1 Motherboards based on a VIA or Intel chipset.
OHCI Open Host Controller Interface. supports USB 1.1 Motherboards based on an NVIDIA or SiS chipset.
EHCI Extended Host Controller Interface. The only common host controller to support USB 2.0. Any computer that supports USB 2.0
XHCI eXtensible Host Controller Interface. It is the host controller for USB 3.0 and is compatible with USB 1.0, 1.1, 2.0, 3.0 and future speeds.
Detect present HCDs on a Linux system:
$ lspci | grep HCI

Eject a USB drive in Windows

With PowerShell, a USB drive (whose drive letter is assigned to D:) can be ejected like so
PS C:\> $shl = new-object -comObject shell.application
PS C:\> $shl.namespace([System.Environment+SpecialFolder]::MyComputer.value__).parseName('E:').invokeVerb('Eject')
The value of [System.Environment+SpecialFolder]::MyComputer.value__ is 17.
A USB drive can also be ejected with the «Safely Remove Hardware» applet hotplug.dll.
Another possibility is to use the remove letter=X command in diskpart.exe.
See also

See also

lsusb, usb-devices
/sys/kernel/debug/usb/devices
/sys/bus/usb/devices
/usr/share/hwdata/usb.ids
PowerShell: determine which application prevents an USB drive from being ejected
PCI
/dev/bus/usb
usbview.exe
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR

Index