<!--
{
  "documentType" : "article",
  "framework" : "IOBluetooth",
  "identifier" : "/documentation/IOBluetooth/iobluetoothuserlib-h",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "IOBluetoothUserLib.h"
}
-->

# IOBluetoothUserLib.h

Public Interfaces for Apple’s implementation of Bluetooth technology.

## Discussion

There is an accompanying header to this, “Bluetooth.h”, which contains all technology-specific typedefs and information. This header relies heavily on it.

### Included Headers

- <IOKit/IOKitLib.h>
- <CoreFoundation/CFMachPort.h>
- <IOBluetooth/Bluetooth.h>
- <Foundation/Foundation.h>

## Topics

### Miscellaneous

[`extern IOReturn IOBluetoothAddSCOAudioDevice(IOBluetoothDeviceRef device, CFDictionaryRef configDict);`](/documentation/IOBluetooth/IOBluetoothAddSCOAudioDevice)

Creates a persistent audio driver that will route audio data to/from the specified device.

[`func IOBluetoothIgnoreHIDDevice(IOBluetoothDeviceRef!)`](/documentation/IOBluetooth/IOBluetoothIgnoreHIDDevice(_:))

Hints that the macOS Bluetooth software should ignore a HID device that connects up.

[`func IOBluetoothL2CAPChannelRegisterForChannelCloseNotification(IOBluetoothL2CAPChannelRef!, IOBluetoothUserNotificationCallback!, UnsafeMutableRawPointer!) -> Unmanaged<IOBluetoothUserNotificationRef>!`](/documentation/IOBluetooth/IOBluetoothL2CAPChannelRegisterForChannelCloseNotification(_:_:_:))

Allows a client to register for a channel close notification.

[`func IOBluetoothRemoveIgnoredHIDDevice(IOBluetoothDeviceRef!)`](/documentation/IOBluetooth/IOBluetoothRemoveIgnoredHIDDevice(_:))

The counterpart to the above IOBluetoothIgnoreHIDDevice() API.

[`extern IOReturn IOBluetoothRemoveSCOAudioDevice(IOBluetoothDeviceRef device);`](/documentation/IOBluetooth/IOBluetoothRemoveSCOAudioDevice)

Removes a persistent audio driver for a device that had already been added using IOBluetoothAddAudioDevice().

[`func IOBluetoothUserNotificationUnregister(IOBluetoothUserNotificationRef!)`](/documentation/IOBluetooth/IOBluetoothUserNotificationUnregister(_:))

Unregisters the target notification.

### Callbacks

See the Overview for header-level documentation.

[`typealias IOBluetoothUserNotificationCallback`](/documentation/IOBluetooth/IOBluetoothUserNotificationCallback)

Callback function definition for user notifications.

### Data Types

See the Overview for header-level documentation.

[`typealias IOBluetoothDeviceSearchOptions`](/documentation/IOBluetooth/IOBluetoothDeviceSearchOptions)

[`struct IOBluetoothDeviceSearchAttributes`](/documentation/IOBluetooth/IOBluetoothDeviceSearchAttributes)

Structure used to search for particular devices.

[`struct IOBluetoothDeviceSearchDeviceAttributes`](/documentation/IOBluetooth/IOBluetoothDeviceSearchDeviceAttributes)

Structure used to search for particular devices.

### Constants

See the Overview for header-level documentation.

[`struct IOBluetoothDeviceSearchDeviceAttributes`](/documentation/IOBluetooth/IOBluetoothDeviceSearchDeviceAttributes)

Structure used to search for particular devices.

[`struct IOBluetoothDeviceSearchTypesBits`](/documentation/IOBluetooth/IOBluetoothDeviceSearchTypesBits)

Bits to determine what Bluetooth devices to search for



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)