Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC
ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference

 


IOHIDKeys.h

Include Path:
<IOKit/hid/IOHIDKeys.h>
Path:
/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/hid/IOHIDKeys.h
Includes:
<sys/cdefs.h>
<IOKit/hidsystem/IOHIDParameter.h>

Overview

This header contains keys used to search the IORegistry for services related to human interface devices (HID).



Typedefs


IOHIDElementCollectionType


Describes different types of HID collections.

See Also:
IOHIDElementCollectionType
typedef enum IOHIDElementCollectionType IOHIDElementCollectionType;  
Constants
kIOHIDElementCollectionTypePhysical
Used for a set of data items that represent data points collected at one geometric point.
kIOHIDElementCollectionTypeApplication
Identifies item groups serving different purposes in a single device.
kIOHIDElementCollectionTypeLogical
Used when a set of data items form a composite data structure.
kIOHIDElementCollectionTypeReport
Wraps all the fields in a report.
kIOHIDElementCollectionTypeNamedArray
Contains an array of selector usages.
kIOHIDElementCollectionTypeUsageSwitch
Modifies the meaning of the usage it contains.
kIOHIDElementCollectionTypeUsageModifier
Modifies the meaning of the usage attached to the encompassing collection.
Discussion

Collections identify a relationship between two or more elements.


IOHIDElementCookie


Abstract data type used as a unique identifier for an element.

typedef uint32_t IOHIDElementCookie;  


IOHIDElementType


Describes different types of HID elements.

See Also:
IOHIDElementType
typedef enum IOHIDElementType IOHIDElementType;  
Constants
kIOHIDElementTypeInput_Misc
Misc input data field or varying size.
kIOHIDElementTypeInput_Button
One bit input data field.
kIOHIDElementTypeInput_Axis
Input data field used to represent an axis.
kIOHIDElementTypeInput_ScanCodes
Input data field used to represent a scan code or usage selector.
kIOHIDElementTypeOutput
Used to represent an output data field in a report.
kIOHIDElementTypeFeature
Describes input and output elements not intended for consumption by the end user.
kIOHIDElementTypeCollection
Element used to identify a relationship between two or more elements.
Discussion

Used by the IOHIDFamily to identify the type of element processed. Represented by the key kIOHIDElementTypeKey in the dictionary describing the element.


IOHIDOptionsType


Options for opening a device via IOHIDLib.

See Also:
IOHIDOptionsType
typedef uint32_t IOHIDOptionsType;  
Constants
kIOHIDOptionsTypeNone
Default option.
kIOHIDOptionsTypeSeizeDevice Used to open exclusive
communication with the device. This will prevent the system and other clients from receiving events from the device.


IOHIDQueueOptionsType


Options for creating a queue via IOHIDLib.

See Also:
IOHIDQueueOptionsType
typedef uint32_t IOHIDQueueOptionsType;  
Constants
kIOHIDQueueOptionsTypeNone
Default option.
kIOHIDQueueOptionsTypeEnqueueAll Force the IOHIDQueue
to enqueue all events, relative or absolute, regardless of change.


IOHIDReportType


Describes different type of HID reports.

See Also:
IOHIDReportType
typedef enum IOHIDReportType IOHIDReportType;  
Constants
kIOHIDReportTypeInput
Input report.
kIOHIDReportTypeOutput
Output report.
kIOHIDReportTypeFeature
Feature report.
Discussion

Used by the IOHIDFamily to identify the type of report being processed.

Enumerations


IOHIDElementCollectionType


Describes different types of HID collections.

See Also:
IOHIDElementCollectionType
enum IOHIDElementCollectionType{ 
    kIOHIDElementCollectionTypePhysical = 0x00, 
    kIOHIDElementCollectionTypeApplication, 
    kIOHIDElementCollectionTypeLogical, 
    kIOHIDElementCollectionTypeReport, 
    kIOHIDElementCollectionTypeNamedArray, 
    kIOHIDElementCollectionTypeUsageSwitch, 
    kIOHIDElementCollectionTypeUsageModifier 
};  
Discussion

Collections identify a relationship between two or more elements.


IOHIDElementType


Describes different types of HID elements.

See Also:
IOHIDElementType
enum IOHIDElementType { 
    kIOHIDElementTypeInput_Misc = 1, 
    kIOHIDElementTypeInput_Button = 2, 
    kIOHIDElementTypeInput_Axis = 3, 
    kIOHIDElementTypeInput_ScanCodes = 4, 
    kIOHIDElementTypeOutput = 129, 
    kIOHIDElementTypeFeature = 257, 
    kIOHIDElementTypeCollection = 513 
};  
Discussion

Used by the IOHIDFamily to identify the type of element processed. Represented by the key kIOHIDElementTypeKey in the dictionary describing the element.


IOHIDOptionsType


Options for opening a device via IOHIDLib.

See Also:
IOHIDOptionsType
enum { 
    kIOHIDOptionsTypeNone = 0x00, 
    kIOHIDOptionsTypeSeizeDevice = 0x01 
};  


IOHIDQueueOptionsType


Options for creating a queue via IOHIDLib.

See Also:
IOHIDQueueOptionsType
enum { 
    kIOHIDQueueOptionsTypeNone = 0x00, 
    kIOHIDQueueOptionsTypeEnqueueAll = 0x01 
};  


IOHIDReportType


Describes different type of HID reports.

See Also:
IOHIDReportType
enum IOHIDReportType{ 
    kIOHIDReportTypeInput = 0, 
    kIOHIDReportTypeOutput, 
    kIOHIDReportTypeFeature, 
    kIOHIDReportTypeCount 
};  
Discussion

Used by the IOHIDFamily to identify the type of report being processed.

#defines


HID Device Property Keys


See Also:
kIOHIDTransportKey
kIOHIDVendorIDKey
kIOHIDVendorIDSourceKey
kIOHIDProductIDKey
kIOHIDVersionNumberKey
kIOHIDManufacturerKey
kIOHIDProductKey
kIOHIDSerialNumberKey
kIOHIDCountryCodeKey
kIOHIDLocationIDKey
kIOHIDDeviceUsageKey
kIOHIDDeviceUsagePageKey
kIOHIDDeviceUsagePairsKey
kIOHIDPrimaryUsageKey
kIOHIDPrimaryUsagePageKey
kIOHIDMaxInputReportSizeKey
kIOHIDMaxOutputReportSizeKey
kIOHIDMaxFeatureReportSizeKey
kIOHIDReportIntervalKey
kIOHIDElementKey
kIOHIDElementCookieKey
kIOHIDElementTypeKey
kIOHIDElementCollectionTypeKey
kIOHIDElementUsageKey
kIOHIDElementUsagePageKey
kIOHIDElementMinKey
kIOHIDElementMaxKey
kIOHIDElementScaledMinKey
kIOHIDElementScaledMaxKey
kIOHIDElementSizeKey
kIOHIDElementReportSizeKey
kIOHIDElementReportCountKey
kIOHIDElementReportIDKey
kIOHIDElementIsArrayKey
kIOHIDElementIsRelativeKey
kIOHIDElementIsWrappingKey
kIOHIDElementIsNonLinearKey
kIOHIDElementHasPreferredStateKey
kIOHIDElementHasNullStateKey
kIOHIDElementFlagsKey
kIOHIDElementUnitKey
kIOHIDElementUnitExponentKey
kIOHIDElementNameKey
kIOHIDElementValueLocationKey
kIOHIDElementDuplicateIndexKey
kIOHIDElementParentCollectionKey
kIOHIDElementVendorSpecificKey
kIOHIDElementVendorSpecificKey
kIOHIDElementCookieMinKey
kIOHIDElementCookieMaxKey
kIOHIDElementUsageMinKey
kIOHIDElementUsageMaxKey
kIOHIDElementCalibrationMinKey
kIOHIDElementCalibrationMaxKey
kIOHIDElementCalibrationSaturationMinKey
kIOHIDElementCalibrationSaturationMaxKey
kIOHIDElementCalibrationDeadZoneMinKey
kIOHIDElementCalibrationDeadZoneMaxKey
kIOHIDElementCalibrationGranularityKey
#define kIOHIDTransportKey "Transport"
#define kIOHIDVendorIDKey "VendorID"
#define kIOHIDVendorIDSourceKey "VendorIDSource"
#define kIOHIDProductIDKey "ProductID"
#define kIOHIDVersionNumberKey "VersionNumber"
#define kIOHIDManufacturerKey "Manufacturer"
#define kIOHIDProductKey "Product"
#define kIOHIDSerialNumberKey "SerialNumber"
#define kIOHIDCountryCodeKey "CountryCode"
#define kIOHIDLocationIDKey "LocationID"
#define kIOHIDDeviceUsageKey "DeviceUsage"
#define kIOHIDDeviceUsagePageKey "DeviceUsagePage"
#define kIOHIDDeviceUsagePairsKey "DeviceUsagePairs"
#define kIOHIDPrimaryUsageKey "PrimaryUsage"
#define kIOHIDPrimaryUsagePageKey "PrimaryUsagePage"
#define kIOHIDMaxInputReportSizeKey "MaxInputReportSize"
#define kIOHIDMaxOutputReportSizeKey "MaxOutputReportSize"
#define kIOHIDMaxFeatureReportSizeKey "MaxFeatureReportSize"
    
#define kIOHIDReportIntervalKey "ReportInterval"
/*! @define kIOHIDElementKey @abstract Keys that represents 
    an element property. @discussion Property for a HID Device 
    or element dictionary. Elements can be heirarchical, so they can contain other elements. */
#define kIOHIDElementKey "Elements"
/*! @defined HID Element Dictionary Keys @abstract Keys that
    represent properties of a particular elements. @discussion 
    These keys can also be added to a matching dictionary  when 
    searching for elements via copyMatchingElements.  */
#define kIOHIDElementCookieKey "ElementCookie"
#define kIOHIDElementTypeKey "Type"
#define kIOHIDElementCollectionTypeKey "CollectionType"
#define kIOHIDElementUsageKey "Usage"
#define kIOHIDElementUsagePageKey "UsagePage"
#define kIOHIDElementMinKey "Min"
#define kIOHIDElementMaxKey "Max"
#define kIOHIDElementScaledMinKey "ScaledMin"
#define kIOHIDElementScaledMaxKey "ScaledMax"
#define kIOHIDElementSizeKey "Size"
#define kIOHIDElementReportSizeKey "ReportSize"
#define kIOHIDElementReportCountKey "ReportCount"
#define kIOHIDElementReportIDKey "ReportID"
#define kIOHIDElementIsArrayKey "IsArray"
#define kIOHIDElementIsRelativeKey "IsRelative"
#define kIOHIDElementIsWrappingKey "IsWrapping"
#define kIOHIDElementIsNonLinearKey "IsNonLinear"
#define kIOHIDElementHasPreferredStateKey "HasPreferredState
    "
#define kIOHIDElementHasNullStateKey "HasNullState"
#define kIOHIDElementFlagsKey "Flags"
#define kIOHIDElementUnitKey "Unit"
#define kIOHIDElementUnitExponentKey "UnitExponent"
#define kIOHIDElementNameKey "Name"
#define kIOHIDElementValueLocationKey "ValueLocation"
#define kIOHIDElementDuplicateIndexKey "DuplicateIndex"
#define kIOHIDElementParentCollectionKey "ParentCollection"
#define kIOHIDElementVendorSpecificKey "VendorSpecific"
#define kIOHIDElementVendorSpecificKey "VendorSpecifc"
/*! @defined HID Element Match Keys @abstract Keys used for 
    matching particular elements. @discussion These keys should 
    only be used with a matching  dictionary when searching for 
    elements via copyMatchingElements.  */
#define kIOHIDElementCookieMinKey "ElementCookieMin"
#define kIOHIDElementCookieMaxKey "ElementCookieMax"
#define kIOHIDElementUsageMinKey "UsageMin"
#define kIOHIDElementUsageMaxKey "UsageMax"
/*! @defined kIOHIDElementCalibrationMinKey @abstract The 
    minimum bounds for a calibrated value.  */
#define kIOHIDElementCalibrationMinKey "CalibrationMin"
/*! @defined kIOHIDElementCalibrationMaxKey @abstract The 
    maximum bounds for a calibrated value.  */
#define kIOHIDElementCalibrationMaxKey "CalibrationMax"
/*! @defined kIOHIDElementCalibrationSaturationMinKey @
    abstract The mininum tolerance to be used when calibrating a
    logical element value.  @discussion The saturation property 
    is used to allow for slight differences in the minimum and 
    maximum value returned by an element.  */
#define kIOHIDElementCalibrationSaturationMinKey "
    CalibrationSaturationMin"
/*! @defined kIOHIDElementCalibrationSaturationMaxKey @
    abstract The maximum tolerance to be used when calibrating a
    logical element value.  @discussion The saturation property 
    is used to allow for slight differences in the minimum and 
    maximum value returned by an element.  */
#define kIOHIDElementCalibrationSaturationMaxKey "
    CalibrationSaturationMax"
/*! @defined kIOHIDElementCalibrationDeadZoneMinKey @
    abstract The minimum bounds near the midpoint of a logical 
    value in which the value is ignored.  @discussion The dead 
    zone property is used to allow for slight differences in the
    idle value returned by an element.  */
#define kIOHIDElementCalibrationDeadZoneMinKey "
    CalibrationDeadZoneMin"
/*! @defined kIOHIDElementCalibrationDeadZoneMinKey @
    abstract The maximum bounds near the midpoint of a logical 
    value in which the value is ignored.  @discussion The dead 
    zone property is used to allow for slight differences in the
    idle value returned by an element.  */
#define kIOHIDElementCalibrationDeadZoneMaxKey "
    CalibrationDeadZoneMax"
/*! @defined kIOHIDElementCalibrationGranularityKey @
    abstract The scale or level of detail returned in a 
    calibrated element value.  @discussion Values are rounded 
    off such that if granularity=0.1, values after calibration are 0, 0.1, 0.2, 0.3, etc. */
#define kIOHIDElementCalibrationGranularityKey "
    CalibrationGranularity"
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


HID Element Dictionary Keys


Keys that represent properties of a particular elements.

See Also:
HID
 #define kIOHIDElementCookieKey "ElementCookie" 
Discussion

These keys can also be added to a matching dictionary when searching for elements via copyMatchingElements.


HID Element Match Keys


Keys used for matching particular elements.

See Also:
HID
  #define kIOHIDElementCookieMinKey "ElementCookieMin" 
Discussion

These keys should only be used with a matching dictionary when searching for elements via copyMatchingElements.


kIOHIDCountryCodeKey


See Also:
HID
#define kIOHIDCountryCodeKey "CountryCode" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDDeviceKey


#define kIOHIDDeviceKey "IOHIDDevice" 
Discussion

This key is used to find HID Devices in the IORegistry


kIOHIDDeviceUsageKey


See Also:
HID
#define kIOHIDDeviceUsageKey "DeviceUsage" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDDeviceUsagePageKey


See Also:
HID
#define kIOHIDDeviceUsagePageKey "DeviceUsagePage" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDDeviceUsagePairsKey


See Also:
HID
#define kIOHIDDeviceUsagePairsKey "DeviceUsagePairs" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementCalibrationDeadZoneMinKey


The minimum bounds near the midpoint of a logical value in which the value is ignored.

See Also:
HID
 #define kIOHIDElementCalibrationDeadZoneMinKey "CalibrationDeadZoneMin" 
Discussion

The dead zone property is used to allow for slight differences in the idle value returned by an element.


kIOHIDElementCalibrationDeadZoneMinKey


The maximum bounds near the midpoint of a logical value in which the value is ignored.

See Also:
HID
 #define kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax" 
Discussion

The dead zone property is used to allow for slight differences in the idle value returned by an element.


kIOHIDElementCalibrationGranularityKey


The scale or level of detail returned in a calibrated element value.

See Also:
HID
 #define kIOHIDElementCalibrationGranularityKey "CalibrationGranularity" 
Discussion

Values are rounded off such that if granularity=0.1, values after calibration are 0, 0.1, 0.2, 0.3, etc.


kIOHIDElementCalibrationMaxKey


The maximum bounds for a calibrated value.

See Also:
HID
 #define kIOHIDElementCalibrationMaxKey "CalibrationMax" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementCalibrationMinKey


The minimum bounds for a calibrated value.

See Also:
HID
 #define kIOHIDElementCalibrationMinKey "CalibrationMin" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementCalibrationSaturationMaxKey


The maximum tolerance to be used when calibrating a logical element value.

See Also:
HID
 #define kIOHIDElementCalibrationSaturationMaxKey "CalibrationSaturationMax" 
Discussion

The saturation property is used to allow for slight differences in the minimum and maximum value returned by an element.


kIOHIDElementCalibrationSaturationMinKey


The mininum tolerance to be used when calibrating a logical element value.

See Also:
HID
 #define kIOHIDElementCalibrationSaturationMinKey "CalibrationSaturationMin" 
Discussion

The saturation property is used to allow for slight differences in the minimum and maximum value returned by an element.


kIOHIDElementCollectionTypeKey


See Also:
HID
#define kIOHIDElementCollectionTypeKey "CollectionType" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementCookieMaxKey


See Also:
HID
#define kIOHIDElementCookieMaxKey "ElementCookieMax" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementDuplicateIndexKey


See Also:
HID
#define kIOHIDElementDuplicateIndexKey "DuplicateIndex" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementFlagsKey


See Also:
HID
#define kIOHIDElementFlagsKey "Flags" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementHasNullStateKey


See Also:
HID
#define kIOHIDElementHasNullStateKey "HasNullState" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementHasPreferredStateKey


See Also:
HID
#define kIOHIDElementHasPreferredStateKey "HasPreferredState" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementIsArrayKey


See Also:
HID
#define kIOHIDElementIsArrayKey "IsArray" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementIsNonLinearKey


See Also:
HID
#define kIOHIDElementIsNonLinearKey "IsNonLinear" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementIsRelativeKey


See Also:
HID
#define kIOHIDElementIsRelativeKey "IsRelative" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementIsWrappingKey


See Also:
HID
#define kIOHIDElementIsWrappingKey "IsWrapping" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementKey


Keys that represents an element property.

See Also:
HID
 #define kIOHIDElementKey "Elements" 
Discussion

Property for a HID Device or element dictionary. Elements can be heirarchical, so they can contain other elements.


kIOHIDElementMaxKey


See Also:
HID
#define kIOHIDElementMaxKey "Max" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementMinKey


See Also:
HID
#define kIOHIDElementMinKey "Min" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementNameKey


See Also:
HID
#define kIOHIDElementNameKey "Name" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementParentCollectionKey


See Also:
HID
#define kIOHIDElementParentCollectionKey "ParentCollection" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementReportCountKey


See Also:
HID
#define kIOHIDElementReportCountKey "ReportCount" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementReportIDKey


See Also:
HID
#define kIOHIDElementReportIDKey "ReportID" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementReportSizeKey


See Also:
HID
#define kIOHIDElementReportSizeKey "ReportSize" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementScaledMaxKey


See Also:
HID
#define kIOHIDElementScaledMaxKey "ScaledMax" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementScaledMinKey


See Also:
HID
#define kIOHIDElementScaledMinKey "ScaledMin" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementSizeKey


See Also:
HID
#define kIOHIDElementSizeKey "Size" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementTypeKey


See Also:
HID
#define kIOHIDElementTypeKey "Type" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementUnitExponentKey


See Also:
HID
#define kIOHIDElementUnitExponentKey "UnitExponent" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementUnitKey


See Also:
HID
#define kIOHIDElementUnitKey "Unit" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementUsageKey


See Also:
HID
#define kIOHIDElementUsageKey "Usage" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementUsageMaxKey


See Also:
HID
#define kIOHIDElementUsageMaxKey "UsageMax" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


kIOHIDElementUsageMinKey


See Also:
HID
#define kIOHIDElementUsageMinKey "UsageMin" 
Discussion

Keys that represent properties of a particular element. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.