<!--
{
  "availability" : [
    "DriverKit: 19.0.0 -",
    "macOS: 10.15.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "HIDDriverKit",
  "identifier" : "/documentation/HIDDriverKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "HIDDriverKit"
    ],
    "preciseIdentifier" : "HIDDriverKit"
  },
  "title" : "HIDDriverKit"
}
-->

# HIDDriverKit

Develop drivers for human-interface devices, such as keyboards, pointing devices, and digitizers like pens and touch pads.

## Overview

The HIDDriverKit framework provides C++ classes for developing drivers for human interface devices. HIDDriverKit uses the core types defined in <doc://com.apple.documentation/documentation/DriverKit>, and adds features specific to human interface device development.

Develop your driver with DriverKit and HIDDriverKit, and package it in an app that uses the <doc://com.apple.documentation/documentation/SystemExtensions> framework to install and upgrade the driver on the user’s Mac.

> Note:
> HIDDriverKit is available on macOS.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.driverkit.transport.hid>

[Handling Keyboard Events from a Human Interface Device](/documentation/HIDDriverKit/handling-keyboard-events-from-a-human-interface-device)

Process keyboard-related data from a human interface device and dispatch events to the system.

[Handling Stylus Input from a Human Interface Device](/documentation/HIDDriverKit/handling-stylus-input-from-a-human-interface-device)

Process stylus-related input from a human interface device and dispatch events to the system.

### Samples

  <doc://com.apple.documentation/documentation/DriverKit/driverkit-sample-code>

### Driver Interfaces

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.driverkit.family.hid.eventservice>

[`IOUserHIDEventDriver`](/documentation/HIDDriverKit/IOUserHIDEventDriver)

A complete driver object that dispatches keyboard, digitizer, scrolling, and pointer events originating from a HID device.

[`IOUserHIDEventService`](/documentation/HIDDriverKit/IOUserHIDEventService)

A service that parses HID report data into elements that you can use to dispatch events.

[`IOHIDEventService`](/documentation/HIDDriverKit/IOHIDEventService)

The base class for implementing a device or operating system service that dispatches events to the system.

### Providers

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.driverkit.family.hid.device>

[`IOHIDInterface`](/documentation/HIDDriverKit/IOHIDInterface)

A provider object for a HID device’s interface.

[`IOUserUSBHostHIDDevice`](/documentation/HIDDriverKit/IOUserUSBHostHIDDevice)

A provider object for USB devices that support HID interactions.

[`IOUserHIDDevice`](/documentation/HIDDriverKit/IOUserHIDDevice)

A provider object for devices that support interactions with users.

[`IOHIDDevice`](/documentation/HIDDriverKit/IOHIDDevice)

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

### Events

[`IOHIDDigitizerStylusData`](/documentation/HIDDriverKit/IOHIDDigitizerStylusData)

A structure containing digitizer stylus data.

[`IOHIDDigitizerTouchData`](/documentation/HIDDriverKit/IOHIDDigitizerTouchData)

A structure containing the current digitizer touch data.

### HID Usage Tables

[HID Usage Tables](/documentation/HIDDriverKit/hid-usage-tables)

Identify the types of data that HID devices can report to your driver.

[Match Criteria](/documentation/HIDDriverKit/match-criteria)

Specify the criteria that the system uses to match your driver to a device.

### HID Device Data

[`IOHIDElement`](/documentation/HIDDriverKit/IOHIDElement)

An object that contains parsed information from a HID input report.

[`IOHIDDigitizerCollection`](/documentation/HIDDriverKit/IOHIDDigitizerCollection)

A collection of elements that contain digitizer-related data.

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.hid.virtual.device>

[Low-Level Information](/documentation/HIDDriverKit/low-level-information)

Understand the underlying structures that support HID drivers.

### Reference

[HIDDriverKit Macros](/documentation/HIDDriverKit/hiddriverkit-macros)



---

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)
