---
title: IOHIDDevice
framework: hiddriverkit
role: symbol
role_heading: Class
path: hiddriverkit/iohiddevice
---

# IOHIDDevice

An object containing the low-level behavior for all HID device providers.

## Declaration

```occ
class IOHIDDevice;
```

## Overview

Overview IOHIDDevice is the abstract base class for provider objects that represent a human interface device. This class defines the basic interface that subclasses use to manage reports. Don’t create instances of this class directly. Instead, subclass IOUserHIDDevice or IOUserUSBHostHIDDevice to define the behavior of your custom device provider.

## Topics

### Processing Device Reports

- [handleReport](hiddriverkit/iohiddevice/handlereport.md)
- [getReport](hiddriverkit/iohiddevice/getreport.md)
- [setReport](hiddriverkit/iohiddevice/setreport.md)
- [CompleteReport](hiddriverkit/iohiddevice/completereport.md)
- [Report Options](hiddriverkit/report-options-enum.md)

### Setting Device Properties

- [setProperty](hiddriverkit/iohiddevice/setproperty.md)

## Relationships

### Inherits From

- [IOService](driverkit/ioservice.md)

### Inherited By

- [IOUserHIDDevice](hiddriverkit/iouserhiddevice.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)
- [IOUserHIDDevice](hiddriverkit/iouserhiddevice.md)
