---
title: AudioDriverKit
framework: AudioDriverKit
role: collection
role_heading: Framework
platforms: [driverkit 21.0+]
path: audiodriverkit
---

# AudioDriverKit

Develop drivers for audio devices.

## Overview

Overview The AudioDriverKit framework supports the development of DriverKit-based audio extensions that communicate with the CoreAudio HAL. AudioDriverKit handles all of the necessary user client communication between the CoreAudio HAL and the driver extension, which eliminates the need to implement an audio server plug-in. You can also integrate with transport-based driver extension frameworks like PCIDriverKit. Develop your driver by subclassing IOUserAudioDriver. On macOS, use the System Extensions framework to install and upgrade your driver. On iPadOS, the system automatically discovers and upgrades drivers along with their host apps. note: AudioDriverKit is available on macOS for Intel and Apple Silicon devices, and on iPadOS for devices with an M-series processor.

## Topics

### Essentials

- [IOUserAudioObject](audiodriverkit/iouseraudioobject.md)
- [IOUserAudioDriver](audiodriverkit/iouseraudiodriver.md)
- [DriverKit Audio Family](bundleresources/entitlements/com.apple.developer.driverkit.family.audio.md)
- [Creating an audio device driver](audiodriverkit/creating-an-audio-device-driver.md)

### Working with Audio Devices

- [IOUserAudioClockDevice](audiodriverkit/iouseraudioclockdevice.md)
- [IOUserAudioDevice](audiodriverkit/iouseraudiodevice.md)

### Containing Audio Objects

- [IOUserAudioBox](audiodriverkit/iouseraudiobox.md)

### Working with Audio Streams

- [IOUserAudioStream](audiodriverkit/iouseraudiostream.md)

### Using Audio Controls

- [IOUserAudioControl](audiodriverkit/iouseraudiocontrol.md)
- [IOUserAudioBooleanControl](audiodriverkit/iouseraudiobooleancontrol.md)
- [IOUserAudioStereoPanControl](audiodriverkit/iouseraudiostereopancontrol.md)
- [IOUserAudioSliderControl](audiodriverkit/iouseraudioslidercontrol.md)
- [IOUserAudioSelectorControl](audiodriverkit/iouseraudioselectorcontrol.md)
- [IOUserAudioLevelControl](audiodriverkit/iouseraudiolevelcontrol.md)

### Supporting Types

- [IOUserAudioReservedConfigChangeAction](audiodriverkit/audiodriverkit/iouseraudioreservedconfigchangeaction.md)

### Namespaces

- [AudioDriverKit](audiodriverkit/audiodriverkit.md)

### Macros

- [DebugMsg](audiodriverkit/debugmsg.md)
- [FailIf](audiodriverkit/failif.md)
- [FailIfError](audiodriverkit/failiferror.md)
- [FailIfNULL](audiodriverkit/failifnull.md)
- [kIOUserAudioDriverUserClientType](audiodriverkit/kiouseraudiodriveruserclienttype.md)
