Skip to content

Glossary

IOUSBHost

The IOKit framework for USB device drivers on macOS. Replaces the older IOUSBFamily; the modern path for both in-kernel and DriverKit USB drivers.

IOUSBHost is the IOKit framework that handles USB devices on macOS — both the kernel-side host controller drivers and the per-device driver framework that USB drivers (kext or DriverKit dext) subclass.

Replaces the older IOUSBFamily that shipped through OS X. IOUSBHost is the modern API; new USB drivers target it.

The key classes:

  • IOUSBHostDevice — the IOService that represents an enumerated USB device. Published in the IORegistry when a device is plugged in and enumerated.
  • IOUSBHostInterface — represents a specific interface within a multi-interface device.
  • IOUSBHostPipe — an endpoint on an interface (control, bulk, interrupt, isochronous).

User-space apps that need to talk to USB devices go through IOUSBHost.framework (the modern API, in Objective-C), which wraps the kernel-side IOUserClient machinery. Apps need com.apple.developer.driverkit.usb entitlement for DriverKit clients.

apple-oss-distributions/xnuiokit/DriversIOUSBHost framework lives in the closed-source IOKit drivers tree.View on GitHub(line )

See also: IOKit, DriverKit, and the USB device flow article.