Human Interface Devices (HID)

Overview of the Human Interface Devices (HID) technology.

To develop Human Interface Devices (HID), you need these headers:

For the programming guide, see Human Interface Devices (HID).

For Win32 HID programming APIs, see Win32 Human Interface Devices Reference.

This section contains the programming interfaces related to Human Interface Devices (or HID). Typically, these are devices that humans use to directly control the operation of computer systems.

HIDClass Support Routines

There are system-supplied routines that user-mode applications, kernel-mode drivers, and HID minidrivers use to operate devices in the HIDClass device setup class.

As a general rule, user-mode applications can use the HidD_Xxx and HidP_Xxx routines. However, kernel-mode drivers can only call HidP_Xxx routines.

HID minidrivers use only the HidRegisterMinidriver routine.

For Windows 8.1 Microsoft introduced the new Windows.Devices.HumanInterfaceDevice API which lets you write Windows apps that access HID devices.

The header defines IOCTLs that a HID minidriver must support. Only the HID class driver sends these IOCTLs to a HID minidriver. User-mode applications and other kernel-mode drivers can only communicate with HID collections by using the HIDClass support routines and HID class driver IOCTLs.

HID Minidriver IOCTLs

A HID minidriver must handle a set of IOCTLs. Only the HID class driver sends these IOCTLs to a HID minidriver. User-mode applications and other kernel-mode drivers can only communicate with HID collections by using the HIDClass support routines and HID class driver IOCTLs.

Topic Description
IOCTL_HID_ACTIVATE_DEVICE The IOCTL_HID_ACTIVATE_DEVICE request activates a HIDClass device, which makes it ready for I/O operations.
IOCTL_HID_DEACTIVATE_DEVICE The IOCTL_HID_DEACTIVATE_DEVICE request deactivates a HIDClass device, which causes it to stop operations and terminate all outstanding I/O requests.
IOCTL_HID_GET_DEVICE_ATTRIBUTES The IOCTL_HID_GET_DEVICE_ATTRIBUTES request obtains a HIDClass device's attributes in a HID_DEVICE_ATTRIBUTES structure.
IOCTL_HID_GET_DEVICE_DESCRIPTOR The IOCTL_HID_GET_DEVICE_DESCRIPTOR request obtains a HIDClass device's HID descriptor.
IOCTL_HID_GET_REPORT_DESCRIPTOR The IOCTL_HID_GET_REPORT_DESCRIPTOR request obtains the report descriptor for a HIDClass device.
IOCTL_HID_GET_STRING The IOCTL_HID_GET_STRING request obtains a manufacturer ID, product ID, or serial number for a top-level collection. The retrieved string is a NULL-terminated wide character string in a human-readable format.
IOCTL_HID_READ_REPORT The IOCTL_HID_READ_REPORT request transfers an input report from a HIDClass device into the HID class driver's buffer.
IOCTL_HID_WRITE_REPORT The IOCTL_HID_WRITE_REPORT request sends a HID report to a HIDClass device.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR The IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR control code obtains the physical descriptor of a HIDClass device.
IOCTL_UMDF_HID_GET_FEATURE The IOCTL_UMDF_HID_GET_FEATURE control code obtains a feature report from a HIDClass device.
IOCTL_UMDF_HID_GET_INPUT_REPORT The IOCTL_UMDF_HID_GET_INPUT_REPORT control code returns an input report from a HIDClass device.
IOCTL_UMDF_HID_SET_FEATURE The IOCTL_UMDF_HID_GET_FEATURE control code sends a feature report to a HIDClass device.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT The IOCTL_UMDF_HID_SET_OUTPUT_REPORT control code sends an output report to a top-level collection.

HID Class Driver IOCTLs

The HID class driver handles IOCTLs to support for top-level collections.

Although user applications can communicate with the HID class driver by using HidD_Xxx HIDClass support routines, kernel-mode drivers must send the corresponding device control requests described in this section.

The input and output parameters are request-specific.

Upon completion of a request, the I/O status block members are set as follows:

The Status member is set by the HID class driver for all requests that it handles.

As described for each IOCTL, the Information member is set either by the class driver or a lower-level driver. Normally, when a lower-level driver transfers data from or to a device, the lower-level driver sets Information to the number of bytes transferred. However, the HID class driver might return a different value.

Topic Description
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS The IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS request obtains the size of the input report queue for a top-level collection.
IOCTL_GET_PHYSICAL_DESCRIPTOR The IOCTL_GET_PHYSICAL_DESCRIPTOR request obtains the physical descriptor of a top-level collection.
IOCTL_HID_DEVICERESET_NOTIFICATION The IOCTL_HID_DEVICERESET_NOTIFICATION request is sent by the HID client driver to HID class driver to wait for a device-initiated reset event.
IOCTL_HID_DISABLE_SECURE_READ The IOCTL_HID_DISABLE_SECURE_READ request cancels an IOCTL_HID_ENABLE_SECURE_READ request for a HID collection.
IOCTL_HID_ENABLE_SECURE_READ The IOCTL_HID_ENABLE_SECURE_READ request enables a secure read for open files of a HID collection.
IOCTL_HID_ENABLE_WAKE_ON_SX The IOCTL_HID_ENABLE_WAKE_ON_SX request is used to indicate the requirement for a device to be able to wake from system sleep.
IOCTL_HID_FLUSH_QUEUE The IOCTL_HID_FLUSH_QUEUE request dequeues all of the unparsed input reports from a top-level collection's input report queue.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR The IOCTL_HID_GET_COLLECTION_DESCRIPTOR request obtains a top-level collection's preparsed data, which the HID class driver extracted from the physical device's report descriptor during device initialization.
IOCTL_HID_GET_COLLECTION_INFORMATION The IOCTL_HID_GET_COLLECTION_INFORMATION request obtains a top-level collection's HID_COLLECTION_INFORMATION structure.
IOCTL_HID_GET_DRIVER_CONFIG The IOCTL_HID_GET_DRIVER_CONFIG request retrieves the driver configuration.
IOCTL_HID_GET_FEATURE The IOCTL_HID_GET_FEATURE request returns a feature report associated with a top-level collection.
IOCTL_HID_GET_HARDWARE_ID The IOCTL_HID_GET_HARDWARE_ID request obtains the Plug and Play hardware ID of a top-level collection.
IOCTL_HID_GET_INDEXED_STRING The IOCTL_HID_GET_INDEXED_STRING request obtains a specified embedded string from a top-level collection.
IOCTL_HID_GET_INPUT_REPORT The IOCTL_HID_GET_INPUT_REPORT request obtains an input report from a top-level collection.
IOCTL_HID_GET_MANUFACTURER_STRING The IOCTL_HID_GET_MANUFACTURER_STRING request obtains a top-level collection's embedded string that identifies the manufacturer of the device.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR The IOCTL_HID_GET_MS_GENRE_DESCRIPTOR request is used for retrieving the genre descriptor for the device.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC The IOCTL_HID_GET_POLL_FREQUENCY_MSEC request obtains the current polling frequency, in milliseconds, of a top-level collection.
IOCTL_HID_GET_PRODUCT_STRING The IOCTL_HID_GET_PRODUCT_STRING request obtains a top-level collection's embedded string that identifies the manufacturer's product. The retrieved string is a NULL-terminated wide character string in a human-readable format. For general information about HIDClass devices, see HID Collections.
IOCTL_HID_GET_SERIALNUMBER_STRING The IOCTL_HID_GET_SERIALNUMBER_STRING request obtains a top-level collection's embedded string that identifies the device's serial number.
IOCTL_HID_SET_DRIVER_CONFIG The IOCTL_HID_SET_DRIVER_CONFIG request sets the driver configuration.
IOCTL_HID_SET_FEATURE The IOCTL_HID_SET_FEATURE request sends a feature report to a top-level collection. For general information about HIDClass devices, see HID Collections.
IOCTL_HID_SET_OUTPUT_REPORT The IOCTL_HID_SET_OUTPUT_REPORT request sends an output report to a top-level collection.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC The IOCTL_HID_SET_POLL_FREQUENCY_MSEC request sets the polling frequency, in milliseconds, for a top-level collection. User-mode applications or kernel-mode drivers that perform irregular, opportunistic reads on a polled device must furnish a polling interval of zero. In such cases, IOCTL_HID_SET_POLL_FREQUENCY_MSEC does not actually change the polling frequency of the device; but if the report data is not stale when it is read, the read is completed immediately with the latest report data for the indicated collection. If the report data is stale, it is refreshed immediately, without waiting for the expiration of the polling interval, and the read is completed with the new data. If the value for the polling interval that is provided in the IRP is not zero, it must be >= MIN_POLL_INTERVAL_MSEC and <= MAX_POLL_INTERVAL_MSEC. Polling may be limited if there are multiple top-level collections. For general information about HIDClass devices, see HID Collections.
IOCTL_HID_SET_S0_IDLE_TIMEOUT The IOCTL_HID_SET_S0_IDLE_TIMEOUT request is used by a client to inform the HID class driver about the client's preferred idle timeout value.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS The IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS request sets the number of buffers for the input report queue of a top-level collection. Each input report queue is implemented as a ring buffer. If a collection transmits data to the HID class driver faster than the driver can read it, some of the data may be lost. To prevent this type of loss, you can use an IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS request to adjust the number of buffers that the input report queue contains. The HID class driver requires a minimum of two input buffers. The maximum number of input buffers that the HID class driver supports is 512. The default number of input buffers is 32. For general information about HIDClass devices, see HID Collections.

Reserved for internal system use

This section lists, in alphabetical order, the HIDClass-related routines, structures, enumeration types and data types that are reserved for internal system use.

  • DeviceObjectState
  • HID_DRIVER_CONFIG
  • HID_INTERFACE_HIDPARSE
  • HID_INTERFACE_NOTIFY_PNP
  • HIDD_CONFIGURATION
  • HidD_GetConfiguration
  • HidD_GetMsGenreDescriptor
  • HidD_SetConfiguration
  • HIDP_COLLECTION_DESC
  • HIDP_DEVICE_DESC
  • HidP_FreeCollectionDescription
  • HIDP_GETCOLDESC_DBG
  • HIDP_KEYBOARD_DIRECTION
  • HIDP_KEYBOARD_MODIFIER_STATE
  • HIDP_REPORT_IDS
  • HidP_SysPowerCaps
  • HidP_SysPowerEvent
  • HidP_TranslateUsageAndPagesToI8042ScanCodes
  • PHID_STATUS_CHANGE
  • PHIDP_INSERT_SCANCODES
  • PHIDP_REPORT_DESCRIPTOR

DeviceObjectState

The DeviceObjectState enumeration type is reserved for internal system use.

enum DeviceObjectState {
  DeviceObjectStarted,
  DeviceObjectStopped,
  DeviceObjectRemoved
};

Headers Declared in Hidclass.h.

HID_DRIVER_CONFIG

The HID_DRIVER_CONFIG structure is reserved for internal system use.

typedef struct _HID_DRIVER_CONFIG {
  ULONG  Size;
  ULONG  RingBufferSize;
} HID_DRIVER_CONFIG, *PHID_DRIVER_CONFIG;

Headers Declared in Hidclass.h.

HID_INTERFACE_HIDPARSE

The HID_INTERFACE_HIDPARSE structure is reserved for internal system use.

typedef struct _HID_INTERFACE_HIDPARSE {
#ifndef __cplusplus
  INTERFACE;
#else
  INTERFACE  i;
#endif
  PHIDP_GETCAPS  HidpGetCaps;
} HID_INTERFACE_HIDPARSE, *PHID_INTERFACE_HIDPARSE;

Headers Declared in Hidclass.h.

HID_INTERFACE_NOTIFY_PNP

The HID_INTERFACE_NOTIFY_PNP structure is reserved for internal system use.

typedef struct _HID_INTERFACE_NOTIFY_PNP {
#ifndef __cplusplus
  INTERFACE;
#else
  INTERFACE  i;
#endif
  PHID_STATUS_CHANGE  StatusChangeFn;
  PVOID CallbackContext;
} HID_INTERFACE_NOTIFY_PNP, *PHID_INTERFACE_NOTIFY_PNP;

Headers Declared in Hidclass.h.

HIDD_CONFIGURATION

The HIDD_CONFIGURATION structure is reserved for internal system use.

typedef struct _HIDD_CONFIGURATION {
  PVOID  cookie;
  ULONG  size;
  ULONG  RingBufferSize;
} HIDD_CONFIGURATION, *PHIDD_CONFIGURATION;

Headers Declared in Hidsdi.h.

HidD_GetConfiguration

The HidD_GetConfiguration routine is reserved for internal system use.

BOOLEAN __stdcall
HidD_GetConfiguration(
    IN HANDLE  HidDeviceObject,
    OUT PHIDD_CONFIGURATION  Configuration,
    IN ULONG  ConfigurationLength
    );

Headers Declared in Hidsdi.h.

HidD_GetMsGenreDescriptor

The HidD_GetMsGenreDescriptor routine is reserved for internal system use.

BOOLEAN __stdcall
HidD_GetMsGenreDescriptor(
    IN HANDLE  HidDeviceObject,
    OUT PVOID  Buffer,
    IN ULONG  BufferLength
    );

Headers Declared in Hidsdi.h.

HidD_SetConfiguration

The HidD_SetConfiguration routine is reserved for internal system use.

BOOLEAN __stdcall
HidD_SetConfiguration(
    IN HANDLE  HidDeviceObject,
    IN PHIDD_CONFIGURATION  Configuration,
    IN ULONG  ConfigurationLength
    );

Headers Declared in Hidsdi.h.

HIDP_COLLECTION_DESC

The HIDP_COLLECTION_DESC structure is reserved for internal system use.

typedef struct _HIDP_COLLECTION_DESC {
  USAGE  UsagePage;
  USAGE  Usage;
  UCHAR  CollectionNumber;
  UCHAR  Reserved [15];
  USHORT  InputLength;
  USHORT  OutputLength;
  USHORT  FeatureLength;
  USHORT  PreparsedDataLength;
  PHIDP_PREPARSED_DATA  PreparsedData;
} HIDP_COLLECTION_DESC, *PHIDP_COLLECTION_DESC;

Headers Declared in Hidpddi.h.

HIDP_DEVICE_DESC

The HIDP_DEVICE_DESC structure is reserved for internal system use.

typedef struct _HIDP_DEVICE_DESC {
  PHIDP_COLLECTION_DESC  CollectionDesc;
  ULONG  CollectionDescLength;
  PHIDP_REPORT_IDS  ReportIDs;
  ULONG  ReportIDsLength;
  HIDP_GETCOLDESC_DBG  Dbg;
} HIDP_DEVICE_DESC, *PHIDP_DEVICE_DESC;

Headers Declared in Hidpddi.h.

HidP_FreeCollectionDescription

The HidP_FreeCollectionDescription routine is reserved for internal system use.

VOID
HidP_FreeCollectionDescription(
    IN PHIDP_DEVICE_DESC  DeviceDescription
    );

Headers Declared in Hidpddi.h.

HIDP_GETCOLDESC_DBG

The HIDP_GETCOLDESC_DBG structure is reserved for internal system use.

typedef struct _HIDP_GETCOLDESC_DBG {
  ULONG  BreakOffset;
  ULONG  ErrorCode;
  ULONG  Args[6];
} HIDP_GETCOLDESC_DBG, *PHIDP_GETCOLDESC_DBG;

Headers Declared in Hidpddi.h.

HIDP_KEYBOARD_DIRECTION

The HIDP_KEYBOARD_DIRECTION enumeration type is reserved for internal system use.

typedef enum _HIDP_KEYBOARD_DIRECTION {
 HidP_Keyboard_Break,
 HidP_Keyboard_Make
} HIDP_KEYBOARD_DIRECTION;

Headers Declared in Hidpi.h.

HIDP_KEYBOARD_MODIFIER_STATE

The HIDP_KEYBOARD_MODIFIER_STATE structure is reserved for internal system use.

typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
  union {
    struct {
      ULONG  LeftControl: 1;
      ULONG  LeftShift: 1;
      ULONG  LeftAlt: 1;
      ULONG  LeftGUI: 1;
      ULONG  RightControl: 1;
      ULONG  RightShift: 1;
      ULONG  RightAlt: 1;
      ULONG  RigthGUI: 1;
      ULONG  CapsLock: 1;
      ULONG  ScollLock: 1;
      ULONG  NumLock: 1;
      ULONG  Reserved: 21;
    };
    ULONG ul;
  };
} HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;

Headers Declared in Hidpi.h.

HIDP_REPORT_IDS

The HIDP_REPORT_IDS structure is reserved for internal system use.

typedef struct _HIDP_REPORT_IDS {
  UCHAR  ReportID;
  UCHAR  CollectionNumber;
  USHORT  InputLength;
  USHORT  OutputLength;
  USHORT  FeatureLength;
} HIDP_REPORT_IDS, *PHIDP_REPORT_IDS;

Headers Declared in Hidpddi.h.

HidP_SysPowerCaps

The HidP_SysPowerCaps routine is reserved for internal system use.

NTSTATUS
HidP_SysPowerCaps(
    IN PHIDP_PREPARSED_DATA  Ppd,
    OUT PULONG  OutputBuffer
    );

Headers Declared in Hidpddi.h.

HidP_SysPowerEvent

The HidP_SysPowerEvent routine is reserved for internal system use.

NTSTATUS
HidP_SysPowerEvent(
    IN PCHAR  HidPacket,
    IN USHORT  HidPacketLength,
    IN PHIDP_PREPARSED_DATA  Ppd,
    OUT PULONG  OutputBuffer
    );

Headers Declared in Hidpddi.h.

HidP_TranslateUsageAndPagesToI8042ScanCodes

The HidP_TranslateUsageAndPagesToI8042ScanCodes routine is reserved for internal system use.

NTSTATUS __stdcall
  HidP_TranslateUsageAndPagesToI8042ScanCodes(
    IN PUSAGE_AND_PAGE  ChangedUsageList,
    IN ULONG  UsageListLength,
    IN HIDP_KEYBOARD_DIRECTION  KeyAction,
    IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
    IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
    IN PVOID  InsertCodesContext
    );

Headers Declared in Hidpi.h.

PHID_STATUS_CHANGE

The PHID_STATUS_CHANGE routine is reserved for internal system use.

typedef VOID (*PHID_STATUS_CHANGE)(
    PVOID  Context,
    enum DeviceObjectState State
    );

Headers Declared in Hidclass.h.

PHIDP_INSERT_SCANCODES

The PHIDP_INSERT_SCANCODES routine is reserved for internal system use.

typedef BOOLEAN (*PHIDP_INSERT_SCANCODES)(
    IN PVOID  Context,
    IN PCHAR  NewScanCodes,
    IN ULONG  Length
    );

Headers Declared in Hidpi.h.

PHIDP_REPORT_DESCRIPTOR

The PHIDP_REPORT_DESCRIPTOR data type is reserved for internal system use.

typedef PUCHAR  PHIDP_REPORT_DESCRIPTOR;

Headers Declared in Hidpi.h.

Callback functions

Title Description
EVT_VHF_ASYNC_OPERATION The HID source driver implements this event callback if it wants to support one of the four asynchronous operation to get and set HID reports.
EVT_VHF_CLEANUP The HID source driver implements this event callback to free resources that might the driver allocated to the virtual HID device.
EVT_VHF_READY_FOR_NEXT_READ_REPORT The HID source driver implements this event call back function to use its buffering scheme for HID Input Reports, and wants to get notified when the next report can be submitted to VHF.
PHIDP_GETCAPS The HidP_GetCaps routine returns a top-level collection's HIDP_CAPS structure.
PI8042_ISR_WRITE_PORT The PI8042_ISR_WRITE_PORT-typed callback routine writes data to an i8042 port. I8042prt provides this callback.
PI8042_KEYBOARD_INITIALIZATION_ROUTINE A PI8042_KEYBOARD_INITIALIZATION_ROUTINE-typed callback routine supplements the default initialization of a keyboard device by I8042prt.
PI8042_KEYBOARD_ISR A PI8042_KEYBOARD_ISR-typed callback routine customizes the operation of the I8042prt keyboard ISR.
PI8042_MOUSE_ISR A PI8042_MOUSE_ISR-typed callback routine customizes the operation of the I8042prt mouse ISR.
PI8042_QUEUE_PACKET The PI8042_QUEUE_PACKET-typed callback routine queues an input data packet for processing by the ISR DPC of a keyboard or mouse device. I8042prt provides this callback.
PI8042_SYNCH_READ_PORT The PI8042_SYNCH_READ_PORT-typed callback routine does a synchronized read from an i8042 port. I8042prt supplies this callback.
PI8042_SYNCH_WRITE_PORT The PI8042_SYNCH_READ_PORT-typed callback routine does a synchronized write to an i8042 port. I8042prt supplies this routine.
PSERVICE_CALLBACK_ROUTINE A function driver calls the class service callback in its ISR dispatch completion routine. The class service callback transfers input data from the input data buffer of a device to the class data queue.

I/O control codes

Title Description
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL The IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS request obtains the size of the input report queue for a top-level collection.
IOCTL_GET_PHYSICAL_DESCRIPTOR IOCTL The IOCTL_GET_PHYSICAL_DESCRIPTOR request obtains the physical descriptor of a top-level collection. For a minidriver, this descriptor is the descriptor of the HIDClass device.
IOCTL_HID_ACTIVATE_DEVICE IOCTL The IOCTL_HID_ACTIVATE_DEVICE request activates a HIDClass device, which makes it ready for I/O operations.
IOCTL_HID_DEACTIVATE_DEVICE IOCTL The IOCTL_HID_DEACTIVATE_DEVICE request deactivates a HIDClass device, which causes it to stop operations and terminate all outstanding I/O requests.
IOCTL_HID_DEVICERESET_NOTIFICATION IOCTL The IOCTL_HID_DEVICERESET_NOTIFICATION request is sent by the HID client driver to HID class driver to wait for a device-initiated reset event.
IOCTL_HID_DISABLE_SECURE_READ IOCTL The IOCTL_HID_DISABLE_SECURE_READ request cancels an IOCTL_HID_ENABLE_SECURE_READ request for a HID collection.
IOCTL_HID_ENABLE_SECURE_READ IOCTL The IOCTL_HID_ENABLE_SECURE_READ request enables a secure read for open files of a HID collection.
IOCTL_HID_ENABLE_WAKE_ON_SX IOCTL The IOCTL_HID_ENABLE_WAKE_ON_SX request is used to indicate the requirement for a device to be able to wake from system sleep.
IOCTL_HID_FLUSH_QUEUE IOCTL The IOCTL_HID_FLUSH_QUEUE request dequeues all of the unparsed input reports from a top-level collection's input report queue.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL The IOCTL_HID_GET_COLLECTION_DESCRIPTOR request obtains a top-level collection's preparsed data, which the HID class driver extracted from the physical device's report descriptor during device initialization.
IOCTL_HID_GET_COLLECTION_INFORMATION IOCTL The IOCTL_HID_GET_COLLECTION_INFORMATION request obtains a top-level collection's HID_COLLECTION_INFORMATION structure.
IOCTL_HID_GET_DEVICE_ATTRIBUTES IOCTL The IOCTL_HID_GET_DEVICE_ATTRIBUTES request obtains a HIDClass device's attributes in a HID_DEVICE_ATTRIBUTES structure.
IOCTL_HID_GET_DEVICE_DESCRIPTOR IOCTL The IOCTL_HID_GET_DEVICE_DESCRIPTOR request obtains a HIDClass device's HID descriptor.
IOCTL_HID_GET_DRIVER_CONFIG IOCTL The IOCTL_HID_GET_DRIVER_CONFIG request retrieves the driver configuration.
IOCTL_HID_GET_FEATURE IOCTL The IOCTL_HID_GET_FEATURE request returns a feature report associated with a top-level collection.
IOCTL_HID_GET_HARDWARE_ID IOCTL The IOCTL_HID_GET_HARDWARE_ID request obtains the Plug and Play hardware ID of a top-level collection.
IOCTL_HID_GET_INDEXED_STRING IOCTL The IOCTL_HID_GET_INDEXED_STRING request obtains a specified embedded string from a top-level collection.
IOCTL_HID_GET_INPUT_REPORT IOCTL The IOCTL_HID_GET_INPUT_REPORT request obtains an input report from a top-level collection.
IOCTL_HID_GET_MANUFACTURER_STRING IOCTL The IOCTL_HID_GET_MANUFACTURER_STRING request obtains a top-level collection's embedded string that identifies the manufacturer of the device.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR IOCTL The IOCTL_HID_GET_MS_GENRE_DESCRIPTOR request is used for retrieving the genre descriptor for the device.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC IOCTL The IOCTL_HID_GET_POLL_FREQUENCY_MSEC request obtains the current polling frequency, in milliseconds, of a top-level collection.
IOCTL_HID_GET_PRODUCT_STRING IOCTL The IOCTL_HID_GET_PRODUCT_STRING request obtains a top-level collection's embedded string that identifies the manufacturer's product. The retrieved string is a NULL-terminated wide character string in a human-readable format.
IOCTL_HID_GET_REPORT_DESCRIPTOR IOCTL The IOCTL_HID_GET_REPORT_DESCRIPTOR request obtains the report descriptor for a HIDClass device.
IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL The IOCTL_HID_GET_SERIALNUMBER_STRING request obtains a top-level collection's embedded string that identifies the device's serial number.
IOCTL_HID_GET_STRING IOCTL The IOCTL_HID_GET_STRING request obtains a manufacturer ID, product ID, or serial number for a top-level collection. The retrieved string is a NULL-terminated wide character string in a human-readable format.
IOCTL_HID_READ_REPORT IOCTL The IOCTL_HID_READ_REPORT request transfers an input report from a HIDClass device into the HID class driver's buffer.
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST IOCTL The IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST control code is the IOCTL of the idle notification request IRP that HIDClass sends to HID mini drivers, such as HIDUSB, to inform the bus driver that the device is now idle.
IOCTL_HID_SET_DRIVER_CONFIG IOCTL The IOCTL_HID_SET_DRIVER_CONFIG request sets the driver configuration.
IOCTL_HID_SET_FEATURE IOCTL The IOCTL_HID_SET_FEATURE request sends a feature report to a top-level collection.
IOCTL_HID_SET_OUTPUT_REPORT IOCTL The IOCTL_HID_SET_OUTPUT_REPORT request sends an output report to a top-level collection.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL The IOCTL_HID_SET_POLL_FREQUENCY_MSEC request sets the polling frequency, in milliseconds, for a top-level collection.
IOCTL_HID_SET_S0_IDLE_TIMEOUT IOCTL The IOCTL_HID_SET_S0_IDLE_TIMEOUT request is used by a client to inform the HID class driver about the client's preferred idle timeout value.
IOCTL_HID_WRITE_REPORT IOCTL The IOCTL_HID_WRITE_REPORT request sends a HID report to a HIDClass device.
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER IOCTL The IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER request is not supported.
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL The IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request does the following
IOCTL_INTERNAL_I8042_HOOK_MOUSE IOCTL The IOCTL_INTERNAL_I8042_HOOK_MOUSE request adds an ISR callback routine to the I8042prt mouse ISR.
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION IOCTL The IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION request passes a pointer to a keyboard interrupt object.
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER IOCTL The IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER request writes data to the i8042 port controller to control operation of a keyboard device.
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION IOCTL The IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION request passes a pointer to a mouse interrupt object.
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER IOCTL The IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER request writes data to the i8042 port controller to control operation of a mouse device.
IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL The IOCTL_INTERNAL_KEYBOARD_CONNECT request connects the Kbdclass service to the keyboard device.
IOCTL_INTERNAL_KEYBOARD_DISCONNECT IOCTL The IOCTL_INTERNAL_KEYBOARD_DISCONNECT request is completed with a status of STATUS_NOT_IMPLEMENTED. Note that a Plug and Play keyboard can be added or removed by the Plug and Play manager.
IOCTL_INTERNAL_MOUSE_CONNECT IOCTL The IOCTL_INTERNAL_MOUSE_CONNECT request connects Mouclass service to a mouse device.
IOCTL_INTERNAL_MOUSE_DISCONNECT IOCTL The IOCTL_INTERNAL_MOUSE_DISCONNECT request is completed by Moufiltr with an error status of STATUS_NOT_IMPLEMENTED.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL The IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS request sets the number of buffers for the input report queue of a top-level collection.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR IOCTL The IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR control code obtains the physical descriptor of a HIDClass device.
IOCTL_UMDF_HID_GET_FEATURE IOCTL The IOCTL_UMDF_HID_GET_FEATURE control code obtains a feature report from a HIDClass device.
IOCTL_UMDF_HID_GET_INPUT_REPORT IOCTL The IOCTL_UMDF_HID_GET_INPUT_REPORT control code returns an input report from a HIDClass device.
IOCTL_UMDF_HID_SET_FEATURE IOCTL The IOCTL_UMDF_HID_GET_FEATURE control code sends a feature report to a HIDClass device.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT IOCTL The IOCTL_UMDF_HID_SET_OUTPUT_REPORT control code sends an output report to a top-level collection.

IOCTLs

 
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS

The IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS request obtains the size of the input report queue for a top-level collection.
IOCTL_GET_PHYSICAL_DESCRIPTOR

The IOCTL_GET_PHYSICAL_DESCRIPTOR request obtains the physical descriptor of a top-level collection. For a minidriver, this descriptor is the descriptor of the HIDClass device.
IOCTL_HID_ACTIVATE_DEVICE

The IOCTL_HID_ACTIVATE_DEVICE request activates a HIDClass device, which makes it ready for I/O operations.
IOCTL_HID_DEACTIVATE_DEVICE

The IOCTL_HID_DEACTIVATE_DEVICE request deactivates a HIDClass device, which causes it to stop operations and terminate all outstanding I/O requests.
IOCTL_HID_DEVICERESET_NOTIFICATION

The IOCTL_HID_DEVICERESET_NOTIFICATION request is sent by the HID client driver to HID class driver to wait for a device-initiated reset event.
IOCTL_HID_DISABLE_SECURE_READ

The IOCTL_HID_DISABLE_SECURE_READ request cancels an IOCTL_HID_ENABLE_SECURE_READ request for a HID collection.
IOCTL_HID_ENABLE_SECURE_READ

The IOCTL_HID_ENABLE_SECURE_READ request enables a secure read for open files of a HID collection.
IOCTL_HID_ENABLE_WAKE_ON_SX

The IOCTL_HID_ENABLE_WAKE_ON_SX request is used to indicate the requirement for a device to be able to wake from system sleep.
IOCTL_HID_FLUSH_QUEUE

The IOCTL_HID_FLUSH_QUEUE request dequeues all of the unparsed input reports from a top-level collection's input report queue.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR

The IOCTL_HID_GET_COLLECTION_DESCRIPTOR request obtains a top-level collection's preparsed data, which the HID class driver extracted from the physical device's report descriptor during device initialization.
IOCTL_HID_GET_COLLECTION_INFORMATION

The IOCTL_HID_GET_COLLECTION_INFORMATION request obtains a top-level collection's HID_COLLECTION_INFORMATION structure.
IOCTL_HID_GET_DEVICE_ATTRIBUTES

The IOCTL_HID_GET_DEVICE_ATTRIBUTES request obtains a HIDClass device's attributes in a HID_DEVICE_ATTRIBUTES structure.
IOCTL_HID_GET_DEVICE_DESCRIPTOR

The IOCTL_HID_GET_DEVICE_DESCRIPTOR request obtains a HIDClass device's HID descriptor.
IOCTL_HID_GET_DRIVER_CONFIG

The IOCTL_HID_GET_DRIVER_CONFIG request retrieves the driver configuration.
IOCTL_HID_GET_FEATURE

The IOCTL_HID_GET_FEATURE request returns a feature report associated with a top-level collection.
IOCTL_HID_GET_HARDWARE_ID

The IOCTL_HID_GET_HARDWARE_ID request obtains the Plug and Play hardware ID of a top-level collection.
IOCTL_HID_GET_INDEXED_STRING

The IOCTL_HID_GET_INDEXED_STRING request obtains a specified embedded string from a top-level collection.
IOCTL_HID_GET_INPUT_REPORT

The IOCTL_HID_GET_INPUT_REPORT request obtains an input report from a top-level collection.
IOCTL_HID_GET_MANUFACTURER_STRING

The IOCTL_HID_GET_MANUFACTURER_STRING request obtains a top-level collection's embedded string that identifies the manufacturer of the device.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR

The IOCTL_HID_GET_MS_GENRE_DESCRIPTOR request is used for retrieving the genre descriptor for the device.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC

The IOCTL_HID_GET_POLL_FREQUENCY_MSEC request obtains the current polling frequency, in milliseconds, of a top-level collection.
IOCTL_HID_GET_PRODUCT_STRING

The IOCTL_HID_GET_PRODUCT_STRING request obtains a top-level collection's embedded string that identifies the manufacturer's product. The retrieved string is a NULL-terminated wide character string in a human-readable format.
IOCTL_HID_GET_REPORT_DESCRIPTOR

The IOCTL_HID_GET_REPORT_DESCRIPTOR request obtains the report descriptor for a HIDClass device.
IOCTL_HID_GET_SERIALNUMBER_STRING

The IOCTL_HID_GET_SERIALNUMBER_STRING request obtains a top-level collection's embedded string that identifies the device's serial number.
IOCTL_HID_GET_STRING

The IOCTL_HID_GET_STRING request obtains a manufacturer ID, product ID, or serial number for a top-level collection. The retrieved string is a NULL-terminated wide character string in a human-readable format.
IOCTL_HID_READ_REPORT

The IOCTL_HID_READ_REPORT request transfers an input report from a HIDClass device into the HID class driver's buffer.
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST

The IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST control code is the IOCTL of the idle notification request IRP that HIDClass sends to HID mini drivers, such as HIDUSB, to inform the bus driver that the device is now idle.
IOCTL_HID_SET_DRIVER_CONFIG

The IOCTL_HID_SET_DRIVER_CONFIG request sets the driver configuration.
IOCTL_HID_SET_FEATURE

The IOCTL_HID_SET_FEATURE request sends a feature report to a top-level collection.
IOCTL_HID_SET_OUTPUT_REPORT

The IOCTL_HID_SET_OUTPUT_REPORT request sends an output report to a top-level collection.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC

The IOCTL_HID_SET_POLL_FREQUENCY_MSEC request sets the polling frequency, in milliseconds, for a top-level collection.
IOCTL_HID_SET_S0_IDLE_TIMEOUT

The IOCTL_HID_SET_S0_IDLE_TIMEOUT request is used by a client to inform the HID class driver about the client's preferred idle timeout value.
IOCTL_HID_WRITE_REPORT

The IOCTL_HID_WRITE_REPORT request sends a HID report to a HIDClass device.
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER

The IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER request is not supported.
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

The IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request does the following:Adds an initialization callback routine to the I8042prt keyboard initialization routineAdds an ISR callback routine to the I8042prt keyboard ISRThe initialization and ISR callbacks are optional and are provided by an upper-level filter driver for a PS/2-style keyboard device.After I8042prt receives an IOCTL_INTERNAL_KEYBOARD_CONNECT request, it sends a synchronous IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request to the top of the keyboard device stack.After Kbfiltr receives the hook keyboard request, Kbfiltr filters the request in the following way:Saves the upper-level information passed to Kbfiltr, which includes the context of an upper-level device object, a pointer to an initialization callback, and a pointer to an ISR callbackReplaces the upper-level information with its ownSaves the context of I8042prt and pointers to callbacks that the Kbfiltr ISR callback can useFor more information about this request and the callbacks, see the following topics:I8042prt Callback RoutinesKbfiltr Callback Routines.
IOCTL_INTERNAL_I8042_HOOK_MOUSE

The IOCTL_INTERNAL_I8042_HOOK_MOUSE request adds an ISR callback routine to the I8042prt mouse ISR.
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION

The IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION request passes a pointer to a keyboard interrupt object.
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER

The IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER request writes data to the i8042 port controller to control operation of a keyboard device.
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION

The IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION request passes a pointer to a mouse interrupt object.
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER

The IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER request writes data to the i8042 port controller to control operation of a mouse device.
IOCTL_INTERNAL_KEYBOARD_CONNECT

The IOCTL_INTERNAL_KEYBOARD_CONNECT request connects the Kbdclass service to the keyboard device.
IOCTL_INTERNAL_KEYBOARD_DISCONNECT

The IOCTL_INTERNAL_KEYBOARD_DISCONNECT request is completed with a status of STATUS_NOT_IMPLEMENTED. Note that a Plug and Play keyboard can be added or removed by the Plug and Play manager.
IOCTL_INTERNAL_MOUSE_CONNECT

The IOCTL_INTERNAL_MOUSE_CONNECT request connects Mouclass service to a mouse device.
IOCTL_INTERNAL_MOUSE_DISCONNECT

The IOCTL_INTERNAL_MOUSE_DISCONNECT request is completed by Moufiltr with an error status of STATUS_NOT_IMPLEMENTED.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS

The IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS request sets the number of buffers for the input report queue of a top-level collection.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR

The IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR control code obtains the physical descriptor of a HIDClass device.
IOCTL_UMDF_HID_GET_FEATURE

The IOCTL_UMDF_HID_GET_FEATURE control code obtains a feature report from a HIDClass device.
IOCTL_UMDF_HID_GET_INPUT_REPORT

The IOCTL_UMDF_HID_GET_INPUT_REPORT control code returns an input report from a HIDClass device.
IOCTL_UMDF_HID_SET_FEATURE

The IOCTL_UMDF_HID_GET_FEATURE control code sends a feature report to a HIDClass device.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT

The IOCTL_UMDF_HID_SET_OUTPUT_REPORT control code sends an output report to a top-level collection.

Enumerations

 
HIDP_REPORT_TYPE

The HIDP_REPORT_TYPE enumeration type is used to specify a HID report type.
KEYBOARD_SCAN_STATE

The KEYBOARD_SCAN_STATE enumeration type indicates the scan state of an input byte from a keyboard.
MOUSE_STATE

The MOUSE_STATE enumeration type identifies the current state of input from a mouse.

Functions

 
EVT_HIDSPICX_NOTIFY_POWERDOWN

Learn more about: EVT_HIDSPICX_NOTIFY_POWERDOWN
EVT_HIDSPICX_RESETDEVICE

Learn more about: EVT_HIDSPICX_RESETDEVICE
EVT_VHF_ASYNC_OPERATION

The HID source driver implements this event callback if it wants to support one of the four asynchronous operation to get and set HID reports.
EVT_VHF_CLEANUP

The HID source driver implements this event callback to free resources that might the driver allocated to the virtual HID device.
EVT_VHF_READY_FOR_NEXT_READ_REPORT

The HID source driver implements this event call back function to use its buffering scheme for HID Input Reports, and wants to get notified when the next report can be submitted to VHF.
HidD_FlushQueue

The HidD_FlushQueue routine deletes all pending input reports in a top-level collection's input queue.
HidD_FreePreparsedData

The HidD_FreePreparsedData routine releases the resources that the HID class driver allocated to hold a top-level collection's preparsed data.
HidD_GetAttributes

The HidD_GetAttributes routine returns the attributes of a specified top-level collection.
HidD_GetFeature

The HidD_GetFeature routine returns a feature report from a specified top-level collection.
HidD_GetHidGuid

The HidD_GetHidGuid routine returns the device interfaceGUID for HIDClass devices.
HidD_GetIndexedString

The HidD_GetIndexedString routine returns a specified embedded string from a top-level collection.
HidD_GetInputReport

The HidD_GetInputReport routine returns an input reports from a top-level collection.
HidD_GetManufacturerString

The HidD_GetManufacturerString routine returns a top-level collection's embedded string that identifies the manufacturer.
HidD_GetNumInputBuffers

The HidD_GetNumInputBuffers routine returns the current size, in number of reports, of the ring buffer that the HID class driver uses to queue input reports from a specified top-level collection.
HidD_GetPhysicalDescriptor

The HidD_GetPhysicalDescriptor routine returns the embedded string of a top-level collection that identifies the collection's physical device.
HidD_GetPreparsedData

The HidD_GetPreparsedData routine returns a top-level collection's preparsed data.
HidD_GetProductString

The HidD_GetProductString routine returns the embedded string of a top-level collection that identifies the manufacturer's product.
HidD_GetSerialNumberString

The HidD_GetSerialNumberString routine returns the embedded string of a top-level collection that identifies the serial number of the collection's physical device.
HidD_SetFeature

The HidD_SetFeature routine sends a feature report to a top-level collection.
HidD_SetNumInputBuffers

The HidD_SetNumInputBuffers routine sets the maximum number of input reports that the HID class driver ring buffer can hold for a specified top-level collection.
HidD_SetOutputReport

The HidD_SetOutputReport routine sends an output report to a top-level collection.
HidP_GetButtonArray

HidP_GetButtonArray returns an array of HIDP_BUTTON_ARRAY_DATA structures for the specified report.
HidP_GetButtonCaps

The HidP_GetButtonCaps routine returns a button capability array that describes all the HID control buttons in a top-level collection for a specified type of HID report.
HidP_GetButtons

The HidP_GetButtons macro is a mnemonic alias for the HHidP_GetUsages function.
HidP_GetButtonsEx

The HidP_GetButtonsEx macro is an mnemonic alias for the HidP_GetUsagesEx function.
HidP_GetCaps

The HidP_GetCaps routine returns a top-level collection's HIDP_CAPS structure. This routine is in hidpi.h.
HidP_GetCollectionDescription

Fills a device description block with collection description and the corresponding report ID information for the specified report descriptor.
HidP_GetData

The HidP_GetData routine returns, for a specified report, an array of HIDP_DATA structures that identify the data indices of all HID control buttons that are currently set to ON (1), and the data indices and data associated with all HID control values.
HidP_GetExtendedAttributes

The HidP_GetExtendedAttributes routine returns the extended attributes of a HID control.
HidP_GetLinkCollectionNodes

The HidP_GetLinkCollectionNodes routine returns a top-level collection's link collection array.
HidP_GetScaledUsageValue

The HidP_GetScaledUsageValue routine returns the signed and scaled result of a HID control value extracted from a HID report.
HidP_GetSpecificButtonCaps

The HidP_GetSpecificButtonCaps routine returns a button capability array that describes all HID control buttons in a top-level collection that meet a specified selection criteria.
HidP_GetSpecificValueCaps

The HidP_GetSpecificValueCaps routine returns a value capability array that describes all HID control values that meet a specified selection criteria.
HidP_GetUsages

The HidP_GetUsages routine returns a list of all the HID control button usages that are on a specified usage page and are set to ON in a HID report.
HidP_GetUsagesEx

The HidP_GetUsagesEx routine returns a list of the all the HID control button usages that are set to ON in a HID report.
HidP_GetUsageValue

The HidP_GetUsageValue routine extracts the data associated with a HID control value that matches the selection criteria in a HID report.
HidP_GetUsageValueArray

The HidP_GetUsageValueArray routine extracts the data associated with a HID control usage value array from a HID report.
HidP_GetValueCaps

The HidP_GetValueCaps routine returns a value capability array that describes all the HID control values in a top-level collection for a specified type of HID report.
HidP_GetVersion

The HidP_GetVersion function is a header-only implementation that returns the HID API version.
HidP_InitializeReportForID

The HidP_InitializeReportForID routine initializes a HID report.
HidP_MaxDataListLength

The HidP_MaxDataListLength routine returns the maximum number of HIDP_DATA structures that HidP_GetData can return for a specified type of HID report and a specified top-level collection.
HidP_MaxUsageListLength

The HidP_MaxUsageListLength routine returns the maximum number of HID usages that HidP_GetUsages can return for a specified type of HID report and a specified top-level collection.
HidP_SetButtonArray

The HidP_SetButtonArray function sets the state of buttons via an array of HIDP_BUTTON_ARRAY_DATA structures.
HidP_SetButtons

The HidP_SetButtons macro is a mnemonic alias for the HidP_SetUsages function.
HidP_SetData

The HidP_SetData routine sets a specified set of HID control button and value usages in a HID report.
HidP_SetScaledUsageValue

The HidP_SetScaledUsageValue routine converts a signed and scaled physical number to a HID usage's logical value, and sets the usage value in a specified HID report.
HidP_SetUsages

The HidP_SetUsages routine sets specified HID control buttons ON (1) in a HID report.
HidP_SetUsageValue

The HidP_SetUsageValue routine sets a HID control value in a specified HID report.
HidP_SetUsageValueArray

The HidP_SetUsageValueArray routine sets a HID control usage value array in a specified HID report.
HidP_TranslateUsagesToI8042ScanCodes

The HidP_TranslateUsagesToI8042ScanCodes routine maps a list of HID usages on the HID_USAGE_PAGE_KEYBOARD usage page to their respective PS/2 scan codes (Scan Code Set 1).
HidP_UnsetButtons

The HidP_UnsetButtons macro is a mnemonic alias for the HidP_UnsetUsages function.
HidP_UnsetUsages

The HidP_UnsetUsages routine sets specified HID control button usages OFF (zero) in a HID report.
HidP_UsageAndPageListDifference

The HidP_UsageAndPageListDifference function returns the difference between two lists of usages.
HidP_UsageListDifference

The HidP_UsageListDifference routine returns the differences between two arrays of HID usages.
HidRegisterMinidriver

The HidRegisterMinidriver routine is called by HID minidrivers, during their initialization, to register with the HID class driver.
HIDSPICX_DEVICE_CONFIG_INIT

Learn more about: HIDSPICX_DEVICE_CONFIG_INIT
HidSpiCxDeviceConfigure

Learn more about: HidSpiCxDeviceConfigure
HidSpiCxDeviceInitConfig

Learn more about: HidSpiCxDeviceInitConfig
HidSpiCxNotifyDeviceReset

Learn more about: HidSpiCxNotifyDeviceReset
PHIDP_GETCAPS

The HidP_GetCaps routine returns a top-level collection's HIDP_CAPS structure. This routine is in hidclass.h.
PI8042_ISR_WRITE_PORT

The PI8042_ISR_WRITE_PORT-typed callback routine writes data to an i8042 port. I8042prt provides this callback.
PI8042_KEYBOARD_INITIALIZATION_ROUTINE

A PI8042_KEYBOARD_INITIALIZATION_ROUTINE-typed callback routine supplements the default initialization of a keyboard device by I8042prt.
PI8042_KEYBOARD_ISR

A PI8042_KEYBOARD_ISR-typed callback routine customizes the operation of the I8042prt keyboard ISR.
PI8042_MOUSE_ISR

A PI8042_MOUSE_ISR-typed callback routine customizes the operation of the I8042prt mouse ISR.
PI8042_QUEUE_PACKET

The PI8042_QUEUE_PACKET-typed callback routine queues an input data packet for processing by the ISR DPC of a keyboard or mouse device. I8042prt provides this callback.
PI8042_SYNCH_READ_PORT

The PI8042_SYNCH_READ_PORT-typed callback routine does a synchronized read from an i8042 port. I8042prt supplies this callback.
PI8042_SYNCH_WRITE_PORT

The PI8042_SYNCH_READ_PORT-typed callback routine does a synchronized write to an i8042 port. I8042prt supplies this routine.
PSERVICE_CALLBACK_ROUTINE

A function driver calls the class service callback in its ISR dispatch completion routine. The class service callback transfers input data from the input data buffer of a device to the class data queue.
VHF_CONFIG_INIT

Use the VHF_CONFIG_INIT function to initialize the required members of the VHF_CONFIG structure allocated by the HID source driver.
VhfAsyncOperationComplete

The HID source driver calls this method to set the results of an asynchronous operation.
VhfCreate

The HID source driver calls this method to create a virtual HID device.
VhfDelete

The HID Source device driver calls this method to delete a VHF device.
VhfReadReportSubmit

The HID source driver calls this method to submit a HID Read (Input) Report to Virtual HID Framework (VHF).
VhfStart

The HID source driver calls this method to start the virtual HID device.

Structures

 
CONNECT_DATA

CONNECT_DATA specifies information that Kbdclass and Mouclass use to connect to a keyboard or mouse port.
HID_COLLECTION_INFORMATION

The HID_COLLECTION_INFORMATION structure contains general information about a top-level collection.
HID_DESCRIPTOR

The HID_DESCRIPTOR structure represents a HID descriptor for a HIDClass device.
HID_DEVICE_ATTRIBUTES

The HID_DEVICE_ATTRIBUTES structure contains information about a HIDClass device.
HID_DEVICE_EXTENSION

The HID_DEVICE_EXTENSION structure is used by a HID minidriver as its layout for the device extension of a HIDClass device's functional device object.
HID_MINIDRIVER_REGISTRATION

The HID_MINIDRIVER_REGISTRATION structure contains registration information that a HID minidriver passes to the HID Client Drivers when the minidriver registers with the class driver.
HID_XFER_PACKET

The HID_XFER_PACKET structure in hidclass.he contains information about a HID report that the HID class driver uses with I/O requests to get or set a report.
HID_XFER_PACKET

The HID_XFER_PACKET structure in vhf.h contains information about a HID report that the HID class driver uses with I/O requests to get or set a report.
HIDD_ATTRIBUTES

The HIDD_ATTRIBUTES structure contains vendor information about a HIDClass device.
HIDP_BUTTON_ARRAY_DATA

The HIDP_BUTTON_ARRAY_DATA structure is used to get or set data for single button in a button array.
HIDP_BUTTON_CAPS

The HIDP_BUTTON_CAPS structure contains information about the capability of a HID control button usage (or a set of buttons associated with a usage range).
HIDP_CAPS

The HIDP_CAPS structure contains information about a top-level collection's capability.
HIDP_COLLECTION_DESC

Contains the information of a top-level-collection. This structure is used in the HidP_GetCollectionDescription call.
HIDP_DATA

The HIDP_DATA structure contains information about a HID control's data index and value in a HID report.
HIDP_DEVICE_DESC

Contains the device description block filled in collection descriptions as linked lists. This structure is used by HidP_GetCollectionDescription.
HIDP_EXTENDED_ATTRIBUTES

The HIDP_EXTENDED_ATTRIBUTES structure contains information about the global items specified for a HID control that the HID parser did not recognize.
HIDP_GETCOLDESC_DBG

Contains the error code indicating the failure in parsing the report descriptor. This structure is used in the HidP_GetCollectionDescription call.
HIDP_LINK_COLLECTION_NODE

The HIDP_LINK_COLLECTION_NODE structure contains information about a link collection in a top-level collection's link collection array.
HIDP_REPORT_IDS

Contains report ID information for a top-level collection.
HIDP_UNKNOWN_TOKEN

The HIDP_UNKNOWN_TOKEN structure contains information about a global item that the HID parser did not recognize.
HIDP_VALUE_CAPS

The HIDP_VALUE_CAPS structure contains information that describes the capability of a set of HID control values (either a single usage or a usage range).
HIDSPICX_DEVICE_CONFIG

Learn more about: HIDSPICX_DEVICE_CONFIG
HIDSPICX_DRIVER_GLOBALS

Learn more about: HIDSPICX_DRIVER_GLOBALS
HIDSPICX_REPORT

Learn more about: HIDSPICX_REPORT
INTERNAL_I8042_HOOK_KEYBOARD

INTERNAL_I8042_HOOK_KEYBOARD is used by I8042prt to connect optional callback routines that supplement keyboard initialization and the keyboard ISR. The callbacks can be supplied by an optional, vendor-supplied, upper-level filter driver.
INTERNAL_I8042_HOOK_MOUSE

INTERNAL_I8042_HOOK_MOUSE is used by I8042prt to connect an optional callback routine that supplements the operation of the mouse ISR. The callback can be supplied by an optional, vendor-supplied, upper-level filter driver.
INTERNAL_I8042_START_INFORMATION

INTERNAL_I8042_START_INFORMATION specifies the interrupt object that an optional, vendor-supplied, upper-level filter device driver can use to synchronize its operation with an I8042prt ISR.
OUTPUT_PACKET

OUTPUT_PACKET contains information about the data that is being written to a keyboard or mouse device by I8042prt.
USAGE_AND_PAGE

The USAGE_AND_PAGE structure specifies the usage page and usage ID of a HID control.
VHF_CONFIG

Contains initial configuration information that is provided by the HID source driver when it calls VhfCreate to create a virtual HID device.