---
title: USB
framework: kernel
role: collectionGroup
role_heading: API Collection
path: kernel/hardware_families/usb
---

# USB

Implement a driver that supports Universal Serial Bus (USB) devices.

## Overview

Overview Use kernel extensions to implement support for devices with real-time requirements, such as audio and video devices.  important: For most types of USB drivers, Apple has deprecated the use of kernel extensions. Instead, create a DriverKit extension using USBDriverKit. This framework refers to the USB Implementers Forum (USB-IF) Universal Serial Bus 3.2 Specification, Revision 1.0, September 22, 2017. You can view this specification and other referenced USB specifications at http://www.usb.org/.

## Topics

### Device Communication

- [Building a Simple USB Driver](kernel/hardware_families/usb/building_a_simple_usb_driver.md)
- [IOUSBHostIOSourceClientRecordLink](kernel/iousbhostiosourceclientrecordlink.md)
- [IOUSBHostIOSourceClientRecordList](kernel/iousbhostiosourceclientrecordlist.md)

### USB Specifications

- [IOUSBIsochronousFrame](kernel/iousbisochronousframe.md)
- [USB Device Descriptors](kernel/hardware_families/usb/usb_device_descriptors.md)
- [Additional Specifications](kernel/hardware_families/usb/additional_specifications.md)

### Actions

- [IOUSBCompletionAction](kernel/iousbcompletionaction.md)
- [IOUSBCompletion](kernel/iousbcompletion.md)
- [IOUSBHostBundledCompletion](kernel/iousbhostbundledcompletion.md)
- [IOUSBHostBundledCompletionAction](kernel/iousbhostbundledcompletionaction.md)
- [IOUSBHostCompletion](kernel/iousbhostcompletion.md)
- [IOUSBHostCompletionAction](kernel/iousbhostcompletionaction.md)
- [IOUSBHostIsochronousCompletion](kernel/iousbhostisochronouscompletion.md)
- [IOUSBHostIsochronousCompletionAction](kernel/iousbhostisochronouscompletionaction.md)
- [IOUSBIsocCompletion](kernel/iousbisoccompletion.md)
- [IOUSBIsocCompletionAction](kernel/iousbisoccompletionaction.md)
- [IOUSBLowLatencyIsocCompletion](kernel/iousblowlatencyisoccompletion.md)
- [IOUSBLowLatencyIsocCompletionAction](kernel/iousblowlatencyisoccompletionaction.md)
- [IOUSBCompletionActionWithTimeStamp](kernel/iousbcompletionactionwithtimestamp.md)
- [IOUSBCompletionWithTimeStamp](kernel/iousbcompletionwithtimestamp.md)

## See Also

### Hardware Interconnects

- [ATA](kernel/hardware_families/ata.md)
- [Bluetooth](kernel/hardware_families/bluetooth.md)
- [FireWire](kernel/hardware_families/firewire.md)
- [PCI](kernel/hardware_families/pci.md)
