---
title: IOUserAudioDriver
framework: audiodriverkit
role: symbol
role_heading: Class
path: audiodriverkit/iouseraudiodriver
---

# IOUserAudioDriver

A DriverKit provider object that manages communications with an audio device.

## Declaration

```occ
class IOUserAudioDriver;
```

## Overview

Overview For the Core Audio host to match against this driver, add the following keys to IOKitPersonalities, in the driver’s Info.plist file:  <key>IOUserAudioDriverUserClientProperties</key>  <dict>      <key>IOClass</key>      <string>IOUserUserClient</string>      <key>IOUserClass</key>      <string>IOUserAudioDriverUserClient</string>  </dict> After matching the host with the driver, the AudioDriverKit framework creates the connection to the Core Audio HAL as soon as the IOService calls NewUserClient. The driver extension must have the com.apple.developer.driverkit.allow-any-userclient-access entitlement.

## Topics

### Running the Driver Service

- [init](audiodriverkit/iouseraudiodriver/init.md)
- [Start](audiodriverkit/iouseraudiodriver/start.md)
- [Stop](audiodriverkit/iouseraudiodriver/stop.md)
- [free](audiodriverkit/iouseraudiodriver/free.md)

### Getting Information About the Class

- [GetClassID](audiodriverkit/iouseraudiodriver/getclassid.md)
- [GetBaseClassID](audiodriverkit/iouseraudiodriver/getbaseclassid.md)
- [IOUserAudioClassID](audiodriverkit/audiodriverkit/iouseraudioclassid.md)
- [GetWorkQueue](audiodriverkit/iouseraudiodriver/getworkqueue.md)
- [GetName](audiodriverkit/iouseraudiodriver/getname.md)
- [SetName](audiodriverkit/iouseraudiodriver/setname.md)

### Getting the Driver’s Audio Object Identifier

- [kIOUserAudioObjectIDDriver](audiodriverkit/audiodriverkit/kiouseraudioobjectiddriver.md)

### Starting and Stopping the Driver

- [StartDevice](audiodriverkit/iouseraudiodriver/startdevice.md)
- [StopDevice](audiodriverkit/iouseraudiodriver/stopdevice.md)
- [IOUserAudioObjectID](audiodriverkit/audiodriverkit/iouseraudioobjectid.md)
- [IOUserAudioStartStopFlags](audiodriverkit/audiodriverkit/iouseraudiostartstopflags.md)

### Creating a New Client

- [NewUserClient](audiodriverkit/iouseraudiodriver/newuserclient.md)

### Working with Transport Type

- [GetTransportType](audiodriverkit/iouseraudiodriver/gettransporttype.md)
- [SetTransportType](audiodriverkit/iouseraudiodriver/settransporttype.md)
- [IOUserAudioTransportType](audiodriverkit/audiodriverkit/iouseraudiotransporttype.md)

### Working with Audio Objects

- [AddObject](audiodriverkit/iouseraudiodriver/addobject.md)
- [RemoveObject](audiodriverkit/iouseraudiodriver/removeobject.md)
- [GetAudioObjectForObjectID](audiodriverkit/iouseraudiodriver/getaudioobjectforobjectid.md)

### Communicating with the Host

- [PropertiesChanged](audiodriverkit/iouseraudiodriver/propertieschanged.md)
- [IOUserAudioObjectPropertySelector](audiodriverkit/audiodriverkit/iouseraudioobjectpropertyselector.md)

### Working with Custom Properties

- [AddCustomProperty](audiodriverkit/iouseraudiodriver/addcustomproperty.md)
- [RemoveCustomProperty](audiodriverkit/iouseraudiodriver/removecustomproperty.md)
- [IOUserAudioCustomProperty](audiodriverkit/iouseraudiocustomproperty.md)

## Relationships

### Inherits From

- [IOService](driverkit/ioservice.md)

## See Also

### Essentials

- [IOUserAudioObject](audiodriverkit/iouseraudioobject.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)
