This documentation describes the details of the programming interface for accessing Human Interface Devices and interfaces from code running in user space. It is intended that user mode HID drivers properly inplement all interfaces described here in order to be visible via the HID Manager.

This documentation assumes that you have a basic understanding of the material contained in Accessing Hardware From Applications For definitions of I/O Kit terms used in this documentation, such as matching dictionary, family, and driver, see the overview of I/O Kit terms and concepts in the "Device Access and the I/O Kit" chapter of Accessing Hardware From Applications.

This documentation also assumes you have read Human Interface Device & Force Feedback. Please review documentation before using this reference.

All of the information described in this document is contained in the header file IOHIDLib.h found at /System/Library/Frameworks/IOKit.framework/Headers/hid/IOHIDDevicePlugIn.h.

Included Headers

  • <sys/cdefs.h>

  • <CoreFoundation/CoreFoundation.h>

  • <CoreFoundation/CFPlugInCOM.h>

  • <IOKit/IOTypes.h>

  • <IOKit/IOReturn.h>

  • <IOKit/IOCFPlugIn.h>

  • <IOKit/hid/IOHIDBase.h>

  • <IOKit/hid/IOHIDKeys.h>

  • <IOKit/hid/IOHIDLibObsolete.h>



See the Overview for header-level documentation.