Framework

USBDriverKit

Develop drivers for USB-based devices.

Overview

Use the USBDriverKit framework to develop drivers for custom or non-class compliant USB devices for use with macOS. USBDriverKit provides C++ classes you can use to attach and configure your device, and create USB message and stream pipes to exchange data. USBDriverKit devices work with the core types defined in the DriverKit framework.

Develop your driver with DriverKit and USBDriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

Topics

Essentials

com.apple.developer.driverkit.transport.usb

An array of dictionaries identifying the USB devices supported by the driver.

USB Interface

IOUSBHostInterface

A DriverKit service that you use to communicate with a USB interface running on a connected device.

IOUSBHostPipe

An object you use to communicate with USB endpoints.

Providers

IOUSBHostDevice

A DriverKit service that you use to communicate directly with a USB device.

USB Specifications

USB Device Descriptors

Determine the capabilities and configuration of a device using descriptors from the USB specification.

Additional Specifications

Request information from a device and get hardware and timing information.

Registry Property Names

Search for specific keys in the device registry.

Utilities

Manipulate bit structures and convert integers between device- and platform-native formats.