---
title: IOUserHIDDevice
framework: hiddriverkit
role: symbol
role_heading: Class
path: hiddriverkit/iouserhiddevice
---

# IOUserHIDDevice

A provider object for devices that support interactions with users.

## Declaration

```occ
class IOUserHIDDevice;
```

## Overview

Overview An IOUserHIDDevice represents a low-level interface for managing your HID device’s hardware. Subclass IOUserHIDDevice when you need to initialize your hardware or set up its transport layer in a specific way. This class provides only basic information about the device, and you are responsible for managing most interactions. note: Subclass IOUserUSBHostHIDDevice, instead of this class, when you want to customize Apple’s default implementation for USB-based HID devices. Specify the Driver’s Personality Information When you subclass IOUserHIDDevice, update the IOKitPersonalities key of your driver extension’s Info.plist file with information to match your driver to appropriate hardware. For this class, always include the keys and values in the following table.  |   |   |   |   |  You may add other keys to assist with the matching process. For example, you might include the VendorID, ProductID, PrimaryUsagePage, and PrimaryUsage keys to match against specific USB devices and HID usage types. The USB specification defines which keys to include when matching your driver to a USB device. For information about the specific key combinations, see Universal Serial Bus Common Class Specification at https://www.usb.org.

## Topics

### Running the Service

- [handleStart](hiddriverkit/iouserhiddevice/handlestart.md)
- [Start](hiddriverkit/iouserhiddevice/start.md)

### Getting the Device Description

- [newDeviceDescription](hiddriverkit/iouserhiddevice/newdevicedescription.md)

### Managing Device Reports

- [newReportDescriptor](hiddriverkit/iouserhiddevice/newreportdescriptor.md)

## Relationships

### Inherits From

- [IOHIDDevice](hiddriverkit/iohiddevice.md)

### Inherited By

- [IOUserUSBHostHIDDevice](hiddriverkit/iouserusbhosthiddevice.md)

## See Also

### Providers

- [com.apple.developer.driverkit.family.hid.device](bundleresources/entitlements/com.apple.developer.driverkit.family.hid.device.md)
- [IOHIDInterface](hiddriverkit/iohidinterface.md)
- [IOUserUSBHostHIDDevice](hiddriverkit/iouserusbhosthiddevice.md)
- [IOHIDDevice](hiddriverkit/iohiddevice.md)
