人机接口设备 (HID)

人机接口设备 (HID) 技术概述。

若要 (HID) 开发人机接口设备,需要以下标头:

有关编程指南,请参阅 人机接口设备 (HID)

有关 Win32 HID 编程 API,请参阅 Win32 人机接口设备参考

本部分包含与人机接口设备 (或 HID) 相关的编程接口。 通常情况下,这些设备是人们用来直接控制计算机系统操作的设备。

HIDClass 支持例程

用户模式应用程序、内核模式驱动程序和 HID 微型驱动程序使用系统提供的例程来操作 HIDClass 设备设置类中的设备。

一般情况下,用户模式应用程序可以使用HidD_Xxx和HidP_Xxx例程。 但是,内核模式驱动程序只能调用HidP_Xxx例程。

HID 微型驱动程序仅使用 HidRegisterMinidriver 例程。

对于Windows 8.1 Microsoft 引入了新的 Windows.Devices.HumanInterfaceDevice API,可用于编写访问 HID 设备的 Windows 应用。

标头定义 HID 微型驱动程序必须支持的 IOCTL。 只有 HID 类驱动程序将这些 IOCTL 发送到 HID 微型驱动程序。 用户模式应用程序和其他内核模式驱动程序只能通过使用 HIDClass 支持例程和 HID 类驱动程序 IOCTL 与 HID 集合通信。

HID 微型驱动程序 IOCTL

HID 微型驱动程序必须处理一组 IOCTL。 只有 HID 类驱动程序将这些 IOCTL 发送到 HID 微型驱动程序。 用户模式应用程序和其他内核模式驱动程序只能通过使用 HIDClass 支持例程和 HID 类驱动程序 IOCTL 与 HID 集合通信。

主题 说明
IOCTL_HID_ACTIVATE_DEVICE IOCTL_HID_ACTIVATE_DEVICE请求激活 HIDClass 设备,使其准备好进行 I/O 操作。
IOCTL_HID_DEACTIVATE_DEVICE IOCTL_HID_DEACTIVATE_DEVICE请求会停用 HIDClass 设备,从而导致它停止操作并终止所有未完成的 I/O 请求。
IOCTL_HID_GET_DEVICE_ATTRIBUTES IOCTL_HID_GET_DEVICE_ATTRIBUTES请求在HID_DEVICE_ATTRIBUTES结构中获取 HIDClass 设备的属性。
IOCTL_HID_GET_DEVICE_DESCRIPTOR IOCTL_HID_GET_DEVICE_DESCRIPTOR请求获取 HIDClass 设备的 HID 描述符。
IOCTL_HID_GET_REPORT_DESCRIPTOR IOCTL_HID_GET_REPORT_DESCRIPTOR请求获取 HIDClass 设备的报告描述符。
IOCTL_HID_GET_STRING IOCTL_HID_GET_STRING请求获取顶级集合的制造商 ID、产品 ID 或序列号。 检索到的字符串是以 NULL 结尾的宽字符串,采用用户可读的格式。
IOCTL_HID_READ_REPORT IOCTL_HID_READ_REPORT请求将输入报告从 HIDClass 设备传输到 HID 类驱动程序的缓冲区。
IOCTL_HID_WRITE_REPORT IOCTL_HID_WRITE_REPORT请求将 HID 报告发送到 HIDClass 设备。
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR控制代码获取 HIDClass 设备的物理描述符。
IOCTL_UMDF_HID_GET_FEATURE IOCTL_UMDF_HID_GET_FEATURE控制代码从 HIDClass 设备获取功能报告。
IOCTL_UMDF_HID_GET_INPUT_REPORT IOCTL_UMDF_HID_GET_INPUT_REPORT控制代码从 HIDClass 设备返回输入报告。
IOCTL_UMDF_HID_SET_FEATURE IOCTL_UMDF_HID_GET_FEATURE控制代码将功能报告发送到 HIDClass 设备。
IOCTL_UMDF_HID_SET_OUTPUT_REPORT IOCTL_UMDF_HID_SET_OUTPUT_REPORT控制代码将输出报告发送到顶级集合。

HID 类驱动程序 IOCTL

HID 类驱动程序处理 IOCTL 以支持顶级集合。

尽管用户应用程序可以使用 HIDClass 支持例程HidD_Xxx与 HID 类驱动程序通信,但内核模式驱动程序必须发送本节中所述的相应设备控制请求。

输入和输出参数特定于请求。

完成请求后,I/O 状态块成员的设置如下:

Status 成员由 HID 类驱动程序为其处理的所有请求设置。

如每个 IOCTL 所述,信息成员由类驱动程序或较低级别的驱动程序设置。 通常,当较低级别的驱动程序向设备传输数据时,较低级别的驱动程序会将“信息”设置为传输的字节数。 但是,HID 类驱动程序可能会返回不同的值。

主题 说明
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS请求获取顶级集合的输入报告队列的大小。
IOCTL_GET_PHYSICAL_DESCRIPTOR IOCTL_GET_PHYSICAL_DESCRIPTOR请求获取顶级集合的物理描述符。
IOCTL_HID_DEVICERESET_NOTIFICATION HID 客户端驱动程序将IOCTL_HID_DEVICERESET_NOTIFICATION请求发送到 HID 类驱动程序,以等待设备启动的重置事件。
IOCTL_HID_DISABLE_SECURE_READ IOCTL_HID_DISABLE_SECURE_READ请求取消 HID 集合的IOCTL_HID_ENABLE_SECURE_READ请求。
IOCTL_HID_ENABLE_SECURE_READ IOCTL_HID_ENABLE_SECURE_READ请求支持对 HID 集合的打开文件进行安全读取。
IOCTL_HID_ENABLE_WAKE_ON_SX IOCTL_HID_ENABLE_WAKE_ON_SX请求用于指示设备能够从系统睡眠状态唤醒的要求。
IOCTL_HID_FLUSH_QUEUE IOCTL_HID_FLUSH_QUEUE请求从顶级集合的输入报告队列中取消所有未分析的输入报表的排队。
IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL_HID_GET_COLLECTION_DESCRIPTOR请求获取顶级集合的预分析数据,HID 类驱动程序在设备初始化期间从物理设备的报告描述符中提取这些数据。
IOCTL_HID_GET_COLLECTION_INFORMATION IOCTL_HID_GET_COLLECTION_INFORMATION请求获取顶级集合的HID_COLLECTION_INFORMATION结构。
IOCTL_HID_GET_DRIVER_CONFIG IOCTL_HID_GET_DRIVER_CONFIG请求检索驱动程序配置。
IOCTL_HID_GET_FEATURE IOCTL_HID_GET_FEATURE请求返回与顶级集合关联的功能报告。
IOCTL_HID_GET_HARDWARE_ID IOCTL_HID_GET_HARDWARE_ID请求获取顶级集合的即插即用硬件 ID。
IOCTL_HID_GET_INDEXED_STRING IOCTL_HID_GET_INDEXED_STRING请求从顶级集合中获取指定的嵌入字符串。
IOCTL_HID_GET_INPUT_REPORT IOCTL_HID_GET_INPUT_REPORT请求从顶级集合获取输入报表。
IOCTL_HID_GET_MANUFACTURER_STRING IOCTL_HID_GET_MANUFACTURER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备制造商。
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR IOCTL_HID_GET_MS_GENRE_DESCRIPTOR请求用于检索设备的流派描述符。
IOCTL_HID_GET_POLL_FREQUENCY_MSEC IOCTL_HID_GET_POLL_FREQUENCY_MSEC请求获取顶级集合的当前轮询频率(以毫秒为单位)。
IOCTL_HID_GET_PRODUCT_STRING IOCTL_HID_GET_PRODUCT_STRING请求获取顶级集合的嵌入字符串,该字符串标识制造商的产品。 检索到的字符串是一个以 NULL 结尾的宽字符串,采用可读的格式。 有关 HIDClass 设备的常规信息,请参阅 HID 集合。
IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL_HID_GET_SERIALNUMBER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备的序列号。
IOCTL_HID_SET_DRIVER_CONFIG IOCTL_HID_SET_DRIVER_CONFIG请求设置驱动程序配置。
IOCTL_HID_SET_FEATURE IOCTL_HID_SET_FEATURE请求将功能报告发送到顶级集合。 有关 HIDClass 设备的常规信息,请参阅 HID 集合。
IOCTL_HID_SET_OUTPUT_REPORT IOCTL_HID_SET_OUTPUT_REPORT请求将输出报告发送到顶级集合。
IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL_HID_SET_POLL_FREQUENCY_MSEC请求为顶级集合设置轮询频率(以毫秒为单位)。 在轮询设备上执行不规则的机会性读取的用户模式应用程序或内核模式驱动程序必须提供 0 的轮询间隔。 在这种情况下,IOCTL_HID_SET_POLL_FREQUENCY_MSEC实际上不会更改设备的轮询频率;但如果报表数据在读取时未过时,则使用指示集合的最新报表数据立即完成读取。 如果报表数据已过时,则会立即刷新,无需等待轮询间隔过期,并且使用新数据完成读取。 如果 IRP 中提供的轮询间隔值不为零,则必须 >为 = MIN_POLL_INTERVAL_MSEC 且 <= MAX_POLL_INTERVAL_MSEC。 如果有多个顶级集合,轮询可能会受到限制。 有关 HIDClass 设备的常规信息,请参阅 HID 集合。
IOCTL_HID_SET_S0_IDLE_TIMEOUT 客户端使用IOCTL_HID_SET_S0_IDLE_TIMEOUT请求来通知 HID 类驱动程序客户端的首选空闲超时值。
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求设置顶级集合的输入报表队列的缓冲区数。 每个输入报告队列都作为环形缓冲区实现。 如果集合将数据传输到 HID 类驱动程序的速度超过驱动程序读取速度,则某些数据可能会丢失。 若要防止此类丢失,可以使用IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求来调整输入报表队列包含的缓冲区数。 HID 类驱动程序至少需要两个输入缓冲区。 HID 类驱动程序支持的最大输入缓冲区数为 512。 默认输入缓冲区数为 32。 有关 HIDClass 设备的常规信息,请参阅 HID 集合。

保留供内部系统使用

本部分按字母顺序列出为内部系统使用保留的与 HIDClass 相关的例程、结构、枚举类型和数据类型。

  • 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

DeviceObjectState 枚举类型保留供系统内部使用。

enum DeviceObjectState {
  DeviceObjectStarted,
  DeviceObjectStopped,
  DeviceObjectRemoved
};

在 Hidclass.h 中声明的标头。

HID_DRIVER_CONFIG

HID_DRIVER_CONFIG结构保留供内部系统使用。

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

在 Hidclass.h 中声明的标头。

HID_INTERFACE_HIDPARSE

HID_INTERFACE_HIDPARSE结构保留供内部系统使用。

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

在 Hidclass.h 中声明的标头。

HID_INTERFACE_NOTIFY_PNP

HID_INTERFACE_NOTIFY_PNP结构保留供内部系统使用。

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;

在 Hidclass.h 中声明的标头。

HIDD_CONFIGURATION

HIDD_CONFIGURATION结构保留供内部系统使用。

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

在 Hidsdi.h 中声明的标头。

HidD_GetConfiguration

HidD_GetConfiguration例程保留供内部系统使用。

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

在 Hidsdi.h 中声明的标头。

HidD_GetMsGenreDescriptor

HidD_GetMsGenreDescriptor例程保留供内部系统使用。

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

在 Hidsdi.h 中声明的标头。

HidD_SetConfiguration

HidD_SetConfiguration例程保留供内部系统使用。

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

在 Hidsdi.h 中声明的标头。

HIDP_COLLECTION_DESC

HIDP_COLLECTION_DESC结构保留供内部系统使用。

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;

在 Hidpddi.h 中声明的标头。

HIDP_DEVICE_DESC

HIDP_DEVICE_DESC结构保留供内部系统使用。

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;

在 Hidpddi.h 中声明的标头。

HidP_FreeCollectionDescription

HidP_FreeCollectionDescription例程保留供内部系统使用。

VOID
HidP_FreeCollectionDescription(
    IN PHIDP_DEVICE_DESC  DeviceDescription
    );

在 Hidpddi.h 中声明的标头。

HIDP_GETCOLDESC_DBG

HIDP_GETCOLDESC_DBG结构保留供内部系统使用。

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

在 Hidpddi.h 中声明的标头。

HIDP_KEYBOARD_DIRECTION

HIDP_KEYBOARD_DIRECTION 枚举类型保留供内部系统使用。

typedef enum _HIDP_KEYBOARD_DIRECTION {
 HidP_Keyboard_Break,
 HidP_Keyboard_Make
} HIDP_KEYBOARD_DIRECTION;

在 Hidpi.h 中声明的标头。

HIDP_KEYBOARD_MODIFIER_STATE

HIDP_KEYBOARD_MODIFIER_STATE结构保留供内部系统使用。

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;

在 Hidpi.h 中声明的标头。

HIDP_REPORT_IDS

HIDP_REPORT_IDS结构保留供内部系统使用。

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

在 Hidpddi.h 中声明的标头。

HidP_SysPowerCaps

HidP_SysPowerCaps例程保留供内部系统使用。

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

在 Hidpddi.h 中声明的标头。

HidP_SysPowerEvent

HidP_SysPowerEvent例程保留供内部系统使用。

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

在 Hidpddi.h 中声明的标头。

HidP_TranslateUsageAndPagesToI8042ScanCodes

HidP_TranslateUsageAndPagesToI8042ScanCodes例程保留供内部系统使用。

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
    );

在 Hidpi.h 中声明的标头。

PHID_STATUS_CHANGE

PHID_STATUS_CHANGE例程保留供内部系统使用。

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

在 Hidclass.h 中声明的标头。

PHIDP_INSERT_SCANCODES

PHIDP_INSERT_SCANCODES例程保留供系统内部使用。

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

在 Hidpi.h 中声明的标头。

PHIDP_REPORT_DESCRIPTOR

PHIDP_REPORT_DESCRIPTOR数据类型保留供内部系统使用。

typedef PUCHAR  PHIDP_REPORT_DESCRIPTOR;

在 Hidpi.h 中声明的标头。

回调函数

标题 说明
EVT_VHF_ASYNC_OPERATION 如果 HID 源驱动程序想要支持四个异步操作之一来获取和设置 HID 报表,则它实现此事件回调。
EVT_VHF_CLEANUP HID 源驱动程序实现此事件回调,以释放可能将驱动程序分配给虚拟 HID 设备的资源。
EVT_VHF_READY_FOR_NEXT_READ_REPORT HID 源驱动程序实现此事件回调函数以将其缓冲方案用于 HID 输入报告,并希望在下一个报告可以提交到 VHF 时收到通知。
PHIDP_GETCAPS HidP_GetCaps例程返回顶级集合的HIDP_CAPS结构。
PI8042_ISR_WRITE_PORT PI8042_ISR_WRITE_PORT类型的回调例程将数据写入 i8042 端口。 I8042prt 提供此回调。
PI8042_KEYBOARD_INITIALIZATION_ROUTINE PI8042_KEYBOARD_INITIALIZATION_ROUTINE类型的回调例程是对 I8042prt 键盘设备的默认初始化的补充。
PI8042_KEYBOARD_ISR PI8042_KEYBOARD_ISR类型的回调例程自定义 I8042prt 键盘 ISR 的操作。
PI8042_MOUSE_ISR PI8042_MOUSE_ISR类型的回调例程自定义 I8042prt 鼠标 ISR 的操作。
PI8042_QUEUE_PACKET PI8042_QUEUE_PACKET类型的回调例程将输入数据包排队,以便由键盘或鼠标设备的 ISR DPC 进行处理。 I8042prt 提供此回调。
PI8042_SYNCH_READ_PORT PI8042_SYNCH_READ_PORT类型的回调例程从 i8042 端口执行同步读取。 I8042prt 提供此回调。
PI8042_SYNCH_WRITE_PORT PI8042_SYNCH_READ_PORT类型的回调例程对 i8042 端口执行同步写入。 I8042prt 提供此例程。
PSERVICE_CALLBACK_ROUTINE 函数驱动程序在其 ISR 调度完成例程中调用类服务回调。 类服务回调将输入数据从设备的输入数据缓冲区传输到类数据队列。

I/O 控制代码

标题 说明
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS请求获取顶级集合的输入报告队列的大小。
IOCTL_GET_PHYSICAL_DESCRIPTOR IOCTL IOCTL_GET_PHYSICAL_DESCRIPTOR请求获取顶级集合的物理描述符。 对于微型驱动程序,此描述符是 HIDClass 设备的描述符。
IOCTL_HID_ACTIVATE_DEVICE IOCTL IOCTL_HID_ACTIVATE_DEVICE请求会激活 HIDClass 设备,使其准备好进行 I/O 操作。
IOCTL_HID_DEACTIVATE_DEVICE IOCTL IOCTL_HID_DEACTIVATE_DEVICE请求会停用 HIDClass 设备,从而导致它停止操作并终止所有未完成的 I/O 请求。
IOCTL_HID_DEVICERESET_NOTIFICATION IOCTL IOCTL_HID_DEVICERESET_NOTIFICATION请求由 HID 客户端驱动程序发送到 HID 类驱动程序,以等待设备发起的重置事件。
IOCTL_HID_DISABLE_SECURE_READ IOCTL IOCTL_HID_DISABLE_SECURE_READ请求取消 HID 集合的IOCTL_HID_ENABLE_SECURE_READ请求。
IOCTL_HID_ENABLE_SECURE_READ IOCTL IOCTL_HID_ENABLE_SECURE_READ请求为 HID 集合的打开文件启用安全读取。
IOCTL_HID_ENABLE_WAKE_ON_SX IOCTL IOCTL_HID_ENABLE_WAKE_ON_SX请求用于指示设备能够从系统睡眠状态唤醒的要求。
IOCTL_HID_FLUSH_QUEUE IOCTL IOCTL_HID_FLUSH_QUEUE请求将从顶级集合的输入报告队列中取消所有未分析的输入报表排队。
IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL IOCTL_HID_GET_COLLECTION_DESCRIPTOR请求获取顶级集合的预分析数据,HID 类驱动程序在设备初始化期间从物理设备的报表描述符中提取这些数据。
IOCTL_HID_GET_COLLECTION_INFORMATION IOCTL IOCTL_HID_GET_COLLECTION_INFORMATION请求获取顶级集合的HID_COLLECTION_INFORMATION结构。
IOCTL_HID_GET_DEVICE_ATTRIBUTES IOCTL IOCTL_HID_GET_DEVICE_ATTRIBUTES请求在HID_DEVICE_ATTRIBUTES结构中获取 HIDClass 设备的属性。
IOCTL_HID_GET_DEVICE_DESCRIPTOR IOCTL IOCTL_HID_GET_DEVICE_DESCRIPTOR请求获取 HIDClass 设备的 HID 描述符。
IOCTL_HID_GET_DRIVER_CONFIG IOCTL IOCTL_HID_GET_DRIVER_CONFIG请求检索驱动程序配置。
IOCTL_HID_GET_FEATURE IOCTL IOCTL_HID_GET_FEATURE请求返回与顶级集合关联的功能报告。
IOCTL_HID_GET_HARDWARE_ID IOCTL IOCTL_HID_GET_HARDWARE_ID请求获取顶级集合的即插即用硬件 ID。
IOCTL_HID_GET_INDEXED_STRING IOCTL IOCTL_HID_GET_INDEXED_STRING请求从顶级集合获取指定的嵌入字符串。
IOCTL_HID_GET_INPUT_REPORT IOCTL IOCTL_HID_GET_INPUT_REPORT请求从顶级集合获取输入报表。
IOCTL_HID_GET_MANUFACTURER_STRING IOCTL IOCTL_HID_GET_MANUFACTURER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备制造商。
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR IOCTL IOCTL_HID_GET_MS_GENRE_DESCRIPTOR请求用于检索设备的流派描述符。
IOCTL_HID_GET_POLL_FREQUENCY_MSEC IOCTL IOCTL_HID_GET_POLL_FREQUENCY_MSEC请求获取顶级集合的当前轮询频率(以毫秒为单位)。
IOCTL_HID_GET_PRODUCT_STRING IOCTL IOCTL_HID_GET_PRODUCT_STRING请求获取顶级集合的嵌入字符串,该字符串标识制造商的产品。 检索到的字符串是以 NULL 结尾的宽字符串,采用用户可读的格式。
IOCTL_HID_GET_REPORT_DESCRIPTOR IOCTL IOCTL_HID_GET_REPORT_DESCRIPTOR请求获取 HIDClass 设备的报告描述符。
IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL IOCTL_HID_GET_SERIALNUMBER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备的序列号。
IOCTL_HID_GET_STRING IOCTL IOCTL_HID_GET_STRING请求获取顶级集合的制造商 ID、产品 ID 或序列号。 检索到的字符串是以 NULL 结尾的宽字符串,采用用户可读的格式。
IOCTL_HID_READ_REPORT IOCTL IOCTL_HID_READ_REPORT请求将输入报告从 HIDClass 设备传输到 HID 类驱动程序的缓冲区。
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST IOCTL IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST控制代码是 HIDClass 发送到 HID 微型驱动程序(如 HIDUSB)的空闲通知请求 IRP 的 IOCTL,以通知总线驱动程序设备现在处于空闲状态。
IOCTL_HID_SET_DRIVER_CONFIG IOCTL IOCTL_HID_SET_DRIVER_CONFIG请求设置驱动程序配置。
IOCTL_HID_SET_FEATURE IOCTL IOCTL_HID_SET_FEATURE请求将功能报告发送到顶级集合。
IOCTL_HID_SET_OUTPUT_REPORT IOCTL IOCTL_HID_SET_OUTPUT_REPORT请求将输出报告发送到顶级集合。
IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL IOCTL_HID_SET_POLL_FREQUENCY_MSEC请求设置顶级集合的轮询频率(以毫秒为单位)。
IOCTL_HID_SET_S0_IDLE_TIMEOUT IOCTL 客户端使用IOCTL_HID_SET_S0_IDLE_TIMEOUT请求来通知 HID 类驱动程序客户端的首选空闲超时值。
IOCTL_HID_WRITE_REPORT IOCTL IOCTL_HID_WRITE_REPORT请求将 HID 报告发送到 HIDClass 设备。
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER IOCTL 不支持IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER请求。
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL IOCTL_INTERNAL_I8042_HOOK_KEYBOARD请求执行以下操作
IOCTL_INTERNAL_I8042_HOOK_MOUSE IOCTL IOCTL_INTERNAL_I8042_HOOK_MOUSE请求将 ISR 回调例程添加到 I8042prt 鼠标 ISR。
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION IOCTL IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION请求将指针传递给键盘中断对象。
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER IOCTL IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER请求将数据写入 i8042 端口控制器,以控制键盘设备的操作。
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION IOCTL IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION请求将指针传递给鼠标中断对象。
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER IOCTL IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER请求将数据写入 i8042 端口控制器,以控制鼠标设备的操作。
IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL IOCTL_INTERNAL_KEYBOARD_CONNECT请求将 Kbdclass 服务连接到键盘设备。
IOCTL_INTERNAL_KEYBOARD_DISCONNECT IOCTL IOCTL_INTERNAL_KEYBOARD_DISCONNECT请求完成,状态为STATUS_NOT_IMPLEMENTED。 请注意,即插即用键盘可由即插即用管理器添加或删除。
IOCTL_INTERNAL_MOUSE_CONNECT IOCTL IOCTL_INTERNAL_MOUSE_CONNECT请求将 Mouclass 服务连接到鼠标设备。
IOCTL_INTERNAL_MOUSE_DISCONNECT IOCTL IOCTL_INTERNAL_MOUSE_DISCONNECT请求由 Moufiltr 完成,错误状态为STATUS_NOT_IMPLEMENTED。
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求设置顶级集合的输入报告队列的缓冲区数。
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR IOCTL IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR控制代码获取 HIDClass 设备的物理描述符。
IOCTL_UMDF_HID_GET_FEATURE IOCTL IOCTL_UMDF_HID_GET_FEATURE控制代码从 HIDClass 设备获取功能报告。
IOCTL_UMDF_HID_GET_INPUT_REPORT IOCTL IOCTL_UMDF_HID_GET_INPUT_REPORT控制代码从 HIDClass 设备返回输入报告。
IOCTL_UMDF_HID_SET_FEATURE IOCTL IOCTL_UMDF_HID_GET_FEATURE控制代码将功能报告发送到 HIDClass 设备。
IOCTL_UMDF_HID_SET_OUTPUT_REPORT IOCTL IOCTL_UMDF_HID_SET_OUTPUT_REPORT控制代码将输出报告发送到顶级集合。

IOCTL

 
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS请求获取顶级集合的输入报告队列的大小。
IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_GET_PHYSICAL_DESCRIPTOR请求获取顶级集合的物理描述符。 对于微型驱动程序,此描述符是 HIDClass 设备的描述符。
IOCTL_HID_ACTIVATE_DEVICE

IOCTL_HID_ACTIVATE_DEVICE请求激活 HIDClass 设备,使其准备好进行 I/O 操作。
IOCTL_HID_DEACTIVATE_DEVICE

IOCTL_HID_DEACTIVATE_DEVICE请求会停用 HIDClass 设备,从而导致它停止操作并终止所有未完成的 I/O 请求。
IOCTL_HID_DEVICERESET_NOTIFICATION

HID 客户端驱动程序将IOCTL_HID_DEVICERESET_NOTIFICATION请求发送到 HID 类驱动程序,以等待设备启动的重置事件。
IOCTL_HID_DISABLE_SECURE_READ

IOCTL_HID_DISABLE_SECURE_READ请求取消 HID 集合的IOCTL_HID_ENABLE_SECURE_READ请求。
IOCTL_HID_ENABLE_SECURE_READ

IOCTL_HID_ENABLE_SECURE_READ请求支持对 HID 集合的打开文件进行安全读取。
IOCTL_HID_ENABLE_WAKE_ON_SX

IOCTL_HID_ENABLE_WAKE_ON_SX请求用于指示设备能够从系统睡眠状态唤醒的要求。
IOCTL_HID_FLUSH_QUEUE

IOCTL_HID_FLUSH_QUEUE请求从顶级集合的输入报告队列中取消所有未分析的输入报表的排队。
IOCTL_HID_GET_COLLECTION_DESCRIPTOR

IOCTL_HID_GET_COLLECTION_DESCRIPTOR请求获取顶级集合的预分析数据,HID 类驱动程序在设备初始化期间从物理设备的报告描述符中提取这些数据。
IOCTL_HID_GET_COLLECTION_INFORMATION

IOCTL_HID_GET_COLLECTION_INFORMATION请求获取顶级集合的HID_COLLECTION_INFORMATION结构。
IOCTL_HID_GET_DEVICE_ATTRIBUTES

IOCTL_HID_GET_DEVICE_ATTRIBUTES请求在HID_DEVICE_ATTRIBUTES结构中获取 HIDClass 设备的属性。
IOCTL_HID_GET_DEVICE_DESCRIPTOR

IOCTL_HID_GET_DEVICE_DESCRIPTOR请求获取 HIDClass 设备的 HID 描述符。
IOCTL_HID_GET_DRIVER_CONFIG

IOCTL_HID_GET_DRIVER_CONFIG请求检索驱动程序配置。
IOCTL_HID_GET_FEATURE

IOCTL_HID_GET_FEATURE请求返回与顶级集合关联的功能报告。
IOCTL_HID_GET_HARDWARE_ID

IOCTL_HID_GET_HARDWARE_ID请求获取顶级集合的即插即用硬件 ID。
IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_INDEXED_STRING请求从顶级集合中获取指定的嵌入字符串。
IOCTL_HID_GET_INPUT_REPORT

IOCTL_HID_GET_INPUT_REPORT请求从顶级集合获取输入报告。
IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_MANUFACTURER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备制造商。
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR

IOCTL_HID_GET_MS_GENRE_DESCRIPTOR请求用于检索设备的流派描述符。
IOCTL_HID_GET_POLL_FREQUENCY_MSEC

IOCTL_HID_GET_POLL_FREQUENCY_MSEC请求获取顶级集合的当前轮询频率(以毫秒为单位)。
IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_PRODUCT_STRING请求获取顶级集合的嵌入字符串,该字符串标识制造商的产品。 检索到的字符串是以 NULL 结尾的宽字符串,采用用户可读的格式。
IOCTL_HID_GET_REPORT_DESCRIPTOR

IOCTL_HID_GET_REPORT_DESCRIPTOR请求获取 HIDClass 设备的报告描述符。
IOCTL_HID_GET_SERIALNUMBER_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING请求获取顶级集合的嵌入字符串,该字符串标识设备的序列号。
IOCTL_HID_GET_STRING

IOCTL_HID_GET_STRING请求获取顶级集合的制造商 ID、产品 ID 或序列号。 检索到的字符串是以 NULL 结尾的宽字符串,采用用户可读的格式。
IOCTL_HID_READ_REPORT

IOCTL_HID_READ_REPORT请求将输入报告从 HIDClass 设备传输到 HID 类驱动程序的缓冲区。
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST

IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST控制代码是 HIDClass 发送到 HID 微型驱动程序(如 HIDUSB)的空闲通知请求 IRP 的 IOCTL,以通知总线驱动程序设备现在处于空闲状态。
IOCTL_HID_SET_DRIVER_CONFIG

IOCTL_HID_SET_DRIVER_CONFIG请求设置驱动程序配置。
IOCTL_HID_SET_FEATURE

IOCTL_HID_SET_FEATURE请求将功能报告发送到顶级集合。
IOCTL_HID_SET_OUTPUT_REPORT

IOCTL_HID_SET_OUTPUT_REPORT请求将输出报告发送到顶级集合。
IOCTL_HID_SET_POLL_FREQUENCY_MSEC

IOCTL_HID_SET_POLL_FREQUENCY_MSEC请求设置顶级集合的轮询频率(以毫秒为单位)。
IOCTL_HID_SET_S0_IDLE_TIMEOUT

客户端使用IOCTL_HID_SET_S0_IDLE_TIMEOUT请求来通知 HID 类驱动程序客户端的首选空闲超时值。
IOCTL_HID_WRITE_REPORT

IOCTL_HID_WRITE_REPORT请求将 HID 报告发送到 HIDClass 设备。
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER

不支持IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER请求。
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD请求执行以下操作:将初始化回调例程添加到 I8042prt 键盘初始化例程将 ISR 回调例程添加到 I8042prt 键盘 ISR 初始化和 ISR 回调是可选的,由 PS/2 样式键盘设备的上层筛选器驱动程序提供。I8042prt 收到IOCTL_INTERNAL_KEYBOARD_CONNECT请求后,会将同步IOCTL_INTERNAL_I8042_HOOK_KEYBOARD请求发送到键盘设备堆栈的顶部。在 Kbfiltr 收到挂钩键盘请求后, Kbfiltr 按以下方式筛选请求:保存传递给 Kbfiltr 的上层信息,其中包括高级设备对象的上下文、指向初始化回调的指针和指向 ISR 回调的指针使用自己的位置放置上级信息保存 I8042prt 的上下文和指向 Kbfiltr ISR 回调可以使用的回调的指针有关此请求和回调的详细信息, 请参阅以下主题:I8042prt 回调例程Kbfiltr 回调例程。
IOCTL_INTERNAL_I8042_HOOK_MOUSE

IOCTL_INTERNAL_I8042_HOOK_MOUSE请求将 ISR 回调例程添加到 I8042prt 鼠标 ISR。
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION

IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION请求将指针传递给键盘中断对象。
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER

IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER请求将数据写入 i8042 端口控制器,以控制键盘设备的操作。
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION

IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION请求将指针传递给鼠标中断对象。
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER

IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER请求将数据写入 i8042 端口控制器,以控制鼠标设备的操作。
IOCTL_INTERNAL_KEYBOARD_CONNECT

IOCTL_INTERNAL_KEYBOARD_CONNECT请求将 Kbdclass 服务连接到键盘设备。
IOCTL_INTERNAL_KEYBOARD_DISCONNECT

IOCTL_INTERNAL_KEYBOARD_DISCONNECT请求完成,状态为STATUS_NOT_IMPLEMENTED。 请注意,即插即用键盘可由即插即用管理器添加或删除。
IOCTL_INTERNAL_MOUSE_CONNECT

IOCTL_INTERNAL_MOUSE_CONNECT请求将 Mouclass 服务连接到鼠标设备。
IOCTL_INTERNAL_MOUSE_DISCONNECT

IOCTL_INTERNAL_MOUSE_DISCONNECT请求由 Moufiltr 完成,错误状态为STATUS_NOT_IMPLEMENTED。
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求设置顶级集合的输入报告队列的缓冲区数。
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR

IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR控制代码获取 HIDClass 设备的物理描述符。
IOCTL_UMDF_HID_GET_FEATURE

IOCTL_UMDF_HID_GET_FEATURE控制代码从 HIDClass 设备获取功能报告。
IOCTL_UMDF_HID_GET_INPUT_REPORT

IOCTL_UMDF_HID_GET_INPUT_REPORT控制代码从 HIDClass 设备返回输入报告。
IOCTL_UMDF_HID_SET_FEATURE

IOCTL_UMDF_HID_GET_FEATURE控制代码将功能报告发送到 HIDClass 设备。
IOCTL_UMDF_HID_SET_OUTPUT_REPORT

IOCTL_UMDF_HID_SET_OUTPUT_REPORT控制代码将输出报告发送到顶级集合。

枚举

 
HIDP_REPORT_TYPE

HIDP_REPORT_TYPE 枚举类型用于指定 HID 报告类型。
KEYBOARD_SCAN_STATE

KEYBOARD_SCAN_STATE枚举类型指示键盘中输入字节的扫描状态。
MOUSE_STATE

MOUSE_STATE枚举类型标识鼠标输入的当前状态。

函数

 
EVT_HIDSPICX_NOTIFY_POWERDOWN

详细了解:EVT_HIDSPICX_NOTIFY_POWERDOWN
EVT_HIDSPICX_RESETDEVICE

详细了解:EVT_HIDSPICX_RESETDEVICE
EVT_VHF_ASYNC_OPERATION

如果 HID 源驱动程序想要支持获取和设置 HID 报表的四个异步操作之一,它将实现此事件回调。
EVT_VHF_CLEANUP

HID 源驱动程序实现此事件回调,以释放可能将驱动程序分配给虚拟 HID 设备的资源。
EVT_VHF_READY_FOR_NEXT_READ_REPORT

HID 源驱动程序实现此事件回调函数以将其缓冲方案用于 HID 输入报告,并希望在可以将下一个报告提交到 VHF 时收到通知。
HidD_FlushQueue

HidD_FlushQueue例程删除顶级集合的输入队列中所有挂起的输入报告。
HidD_FreePreparsedData

HidD_FreePreparsedData例程释放 HID 类驱动程序分配的资源,用于保存顶级集合的预分析数据。
HidD_GetAttributes

HidD_GetAttributes例程返回指定顶级集合的属性。
HidD_GetFeature

HidD_GetFeature例程从指定的顶级集合返回特征报告。
HidD_GetHidGuid

HidD_GetHidGuid例程返回 HIDClass 设备的设备接口GUID。
HidD_GetIndexedString

HidD_GetIndexedString例程从顶级集合返回指定的嵌入字符串。
HidD_GetInputReport

HidD_GetInputReport例程返回顶级集合中的输入报告。
HidD_GetManufacturerString

HidD_GetManufacturerString例程返回标识制造商的顶级集合的嵌入字符串。
HidD_GetNumInputBuffers

HidD_GetNumInputBuffers例程返回 HID 类驱动程序用于从指定的顶级集合中对输入报表进行排队的环形缓冲区的当前大小(以报告数为单位)。
HidD_GetPhysicalDescriptor

HidD_GetPhysicalDescriptor例程返回顶级集合的嵌入字符串,该集合标识集合的物理设备。
HidD_GetPreparsedData

HidD_GetPreparsedData例程返回顶级集合的预先分析数据。
HidD_GetProductString

HidD_GetProductString例程返回标识制造商产品的顶级集合的嵌入字符串。
HidD_GetSerialNumberString

HidD_GetSerialNumberString例程返回顶级集合的嵌入字符串,该集合标识集合的物理设备的序列号。
HidD_SetFeature

HidD_SetFeature例程将功能报告发送到顶级集合。
HidD_SetNumInputBuffers

HidD_SetNumInputBuffers例程设置 HID 类驱动程序环缓冲区可以为指定的顶级集合保留的最大输入报告数。
HidD_SetOutputReport

HidD_SetOutputReport例程将输出报告发送到顶级集合。
HidP_GetButtonArray

HidP_GetButtonArray返回指定报表的HIDP_BUTTON_ARRAY_DATA结构的数组。
HidP_GetButtonCaps

HidP_GetButtonCaps例程返回一个按钮功能数组,该数组描述指定类型 HID 报表的顶级集合中的所有 HID 控件按钮。
HidP_GetButtons

HidP_GetButtons宏是HHidP_GetUsages函数的助记键别名。
HidP_GetButtonsEx

HidP_GetButtonsEx宏是HidP_GetUsagesEx函数的助记键别名。
HidP_GetCaps

HidP_GetCaps例程返回顶级集合的HIDP_CAPS结构。 此例程位于 hidpi.h 中。
HidP_GetCollectionDescription

使用集合说明和指定报表描述符的相应报表 ID 信息填充设备说明块。
HidP_GetData

对于指定的报表,HidP_GetData例程返回HIDP_DATA结构的数组,这些结构标识当前设置为 ON (1) 的所有 HID 控件按钮的数据索引,以及与所有 HID 控件值关联的数据索引。
HidP_GetExtendedAttributes

HidP_GetExtendedAttributes例程返回 HID 控件的扩展属性。
HidP_GetLinkCollectionNodes

HidP_GetLinkCollectionNodes例程返回顶级集合的链接集合数组。
HidP_GetScaledUsageValue

HidP_GetScaledUsageValue例程返回从 HID 报表中提取的 HID 控件值的有符号和缩放结果。
HidP_GetSpecificButtonCaps

HidP_GetSpecificButtonCaps例程返回一个按钮功能数组,该数组描述顶级集合中满足指定选择条件的所有 HID 控件按钮。
HidP_GetSpecificValueCaps

HidP_GetSpecificValueCaps例程返回值功能数组,该数组描述满足指定选择条件的所有 HID 控件值。
HidP_GetUsages

HidP_GetUsages例程返回指定使用情况页上的所有 HID 控件按钮用法的列表,并在 HID 报表中设置为 ON。
HidP_GetUsagesEx

HidP_GetUsagesEx例程返回 HID 报表中设置为 ON 的所有 HID 控件按钮用法的列表。
HidP_GetUsageValue

HidP_GetUsageValue例程提取与与 HID 报表中的选择条件匹配的 HID 控件值关联的数据。
HidP_GetUsageValueArray

HidP_GetUsageValueArray例程从 HID 报表中提取与 HID 控件使用值数组关联的数据。
HidP_GetValueCaps

HidP_GetValueCaps例程返回值功能数组,该数组描述指定类型 HID 报表的顶级集合中的所有 HID 控件值。
HidP_GetVersion

HidP_GetVersion 函数是返回 HID API 版本的仅标头实现。
HidP_InitializeReportForID

HidP_InitializeReportForID例程初始化 HID 报告。
HidP_MaxDataListLength

HidP_MaxDataListLength例程返回HidP_GetData可为指定类型的 HID 报表和指定的顶级集合返回的最大HIDP_DATA结构数。
HidP_MaxUsageListLength

HidP_MaxUsageListLength例程返回指定类型 HID 报表和指定顶级集合HidP_GetUsages可以返回的最大 HID 用法数。
HidP_SetButtonArray

HidP_SetButtonArray 函数通过HIDP_BUTTON_ARRAY_DATA结构数组设置按钮的状态。
HidP_SetButtons

HidP_SetButtons宏是 HidP_SetUsages 函数的助记键别名。
HidP_SetData

HidP_SetData例程在 HID 报表中设置一组指定的 HID 控制按钮和值用法。
HidP_SetScaledUsageValue

HidP_SetScaledUsageValue例程将有符号和缩放的物理数字转换为 HID 用法的逻辑值,并在指定的 HID 报表中设置用法值。
HidP_SetUsages

HidP_SetUsages例程将 HID 报表中的指定 HID 控件按钮设置为 ON (1) 。
HidP_SetUsageValue

HidP_SetUsageValue例程在指定的 HID 报表中设置 HID 控件值。
HidP_SetUsageValueArray

HidP_SetUsageValueArray例程在指定的 HID 报表中设置 HID 控件使用值数组。
HidP_TranslateUsagesToI8042ScanCodes

HidP_TranslateUsagesToI8042ScanCodes例程将HID_USAGE_PAGE_KEYBOARD使用情况页上的 HID 用法列表映射到各自的 PS/2 扫描代码 (扫描代码集 1) 。
HidP_UnsetButtons

HidP_UnsetButtons宏是HidP_UnsetUsages函数的助记键别名。
HidP_UnsetUsages

HidP_UnsetUsages例程在 HID 报表中将指定的 HID 控制按钮用法设置为 OFF (零) 。
HidP_UsageAndPageListDifference

HidP_UsageAndPageListDifference 函数返回两个用法列表之间的差异。
HidP_UsageListDifference

HidP_UsageListDifference例程返回两个 HID 用法数组之间的差异。
HidRegisterMinidriver

HID 微型驱动程序在初始化期间调用 HidRegisterMinidriver 例程,以向 HID 类驱动程序注册。
HIDSPICX_DEVICE_CONFIG_INIT

详细了解:HIDSPICX_DEVICE_CONFIG_INIT
HidSpiCxDeviceConfigure

详细了解:HidSpiCxDeviceConfigure
HidSpiCxDeviceInitConfig

详细了解:HidSpiCxDeviceInitConfig
HidSpiCxNotifyDeviceReset

详细了解:HidSpiCxNotifyDeviceReset
PHIDP_GETCAPS

HidP_GetCaps例程返回顶级集合的HIDP_CAPS结构。 此例程位于 hidclass.h 中。
PI8042_ISR_WRITE_PORT

PI8042_ISR_WRITE_PORT类型的回调例程将数据写入 i8042 端口。 I8042prt 提供此回调。
PI8042_KEYBOARD_INITIALIZATION_ROUTINE

PI8042_KEYBOARD_INITIALIZATION_ROUTINE类型的回调例程补充 I8042prt 对键盘设备的默认初始化。
PI8042_KEYBOARD_ISR

PI8042_KEYBOARD_ISR类型的回调例程自定义 I8042prt 键盘 ISR 的操作。
PI8042_MOUSE_ISR

PI8042_MOUSE_ISR类型的回调例程自定义 I8042prt 鼠标 ISR 的操作。
PI8042_QUEUE_PACKET

PI8042_QUEUE_PACKET类型的回调例程将输入数据包排队,以供键盘或鼠标设备的 ISR DPC 进行处理。 I8042prt 提供此回调。
PI8042_SYNCH_READ_PORT

PI8042_SYNCH_READ_PORT类型的回调例程从 i8042 端口执行同步读取。 I8042prt 提供此回调。
PI8042_SYNCH_WRITE_PORT

PI8042_SYNCH_READ_PORT类型的回调例程对 i8042 端口执行同步写入。 I8042prt 提供此例程。
PSERVICE_CALLBACK_ROUTINE

函数驱动程序在其 ISR 调度完成例程中调用类服务回调。 类服务回调将输入数据从设备的输入数据缓冲区传输到类数据队列。
VHF_CONFIG_INIT

使用 VHF_CONFIG_INIT 函数初始化 HID 源驱动程序分配的 VHF_CONFIG 结构的所需成员。
VhfAsyncOperationComplete

HID 源驱动程序调用此方法来设置异步操作的结果。
VhfCreate

HID 源驱动程序调用此方法来创建虚拟 HID 设备。
VhfDelete

HID 源设备驱动程序调用此方法以删除 VHF 设备。
VhfReadReportSubmit

HID 源驱动程序调用此方法将 HID 读取 (输入) 报告提交到虚拟 HID 框架 (VHF) 。
VhfStart

HID 源驱动程序调用此方法以启动虚拟 HID 设备。

结构

 
CONNECT_DATA

CONNECT_DATA指定 Kbdclass 和 Mouclass 用于连接到键盘或鼠标端口的信息。
HID_COLLECTION_INFORMATION

HID_COLLECTION_INFORMATION 结构包含有关顶级集合的常规信息。
HID_DESCRIPTOR

HID_DESCRIPTOR 结构表示 HIDClass 设备的 HID 描述符。
HID_DEVICE_ATTRIBUTES

HID_DEVICE_ATTRIBUTES 结构包含有关 HIDClass 设备的信息。
HID_DEVICE_EXTENSION

HID_DEVICE_EXTENSION 结构由 HID 微型驱动程序用作 HIDClass 设备的功能设备对象的设备扩展的布局。
HID_MINIDRIVER_REGISTRATION

HID_MINIDRIVER_REGISTRATION 结构包含 HID 微型驱动程序向类驱动程序注册时 HID 微型驱动程序传递给 HID 客户端驱动程序的注册信息。
HID_XFER_PACKET

hidclass 中的HID_XFER_PACKET结构。he 包含 HID 类驱动程序通过 I/O 请求获取或设置报告的 HID 报告的相关信息。
HID_XFER_PACKET

vhf.h 中的 HID_XFER_PACKET 结构包含 HID 类驱动程序用于 I/O 请求以获取或设置报表的 HID 报告的相关信息。
HIDD_ATTRIBUTES

HIDD_ATTRIBUTES 结构包含有关 HIDClass 设备的供应商信息。
HIDP_BUTTON_ARRAY_DATA

HIDP_BUTTON_ARRAY_DATA结构用于获取或设置按钮数组中单个按钮的数据。
HIDP_BUTTON_CAPS

HIDP_BUTTON_CAPS结构包含有关 HID 控件按钮用法 (或与使用范围) 关联的一组按钮的功能的信息。
HIDP_CAPS

HIDP_CAPS 结构包含有关顶级集合功能的信息。
HIDP_COLLECTION_DESC

包含顶级集合的信息。 此结构用于HidP_GetCollectionDescription调用。
HIDP_DATA

HIDP_DATA 结构包含 HID 报表中 HID 控件的数据索引和值的相关信息。
HIDP_DEVICE_DESC

包含以链接列表的形式填充在集合说明中的设备说明块。 HidP_GetCollectionDescription使用此结构。
HIDP_EXTENDED_ATTRIBUTES

HIDP_EXTENDED_ATTRIBUTES 结构包含有关为 HID 分析程序无法识别的 HID 控件指定的全局项的信息。
HIDP_GETCOLDESC_DBG

包含指示分析报表描述符失败的错误代码。 此结构用于HidP_GetCollectionDescription调用。
HIDP_LINK_COLLECTION_NODE

HIDP_LINK_COLLECTION_NODE 结构包含有关顶级集合的链接集合数组中的链接集合的信息。
HIDP_REPORT_IDS

包含顶级集合的报表 ID 信息。
HIDP_UNKNOWN_TOKEN

HIDP_UNKNOWN_TOKEN 结构包含有关 HID 分析程序无法识别的全局项的信息。
HIDP_VALUE_CAPS

HIDP_VALUE_CAPS 结构包含的信息描述了一组 HID 控件值的功能,这些值 (单个用法或使用范围) 。
HIDSPICX_DEVICE_CONFIG

详细了解:HIDSPICX_DEVICE_CONFIG
HIDSPICX_DRIVER_GLOBALS

详细了解:HIDSPICX_DRIVER_GLOBALS
HIDSPICX_REPORT

详细了解:HIDSPICX_REPORT
INTERNAL_I8042_HOOK_KEYBOARD

I8042prt 使用INTERNAL_I8042_HOOK_KEYBOARD来连接可选回调例程,这些例程补充键盘初始化和键盘 ISR。 回调可由供应商提供的上层筛选器驱动程序提供。
INTERNAL_I8042_HOOK_MOUSE

INTERNAL_I8042_HOOK_MOUSE由 I8042prt 用于连接补充鼠标 ISR 操作的可选回调例程。 回调可由供应商提供的可选高级筛选器驱动程序提供。
INTERNAL_I8042_START_INFORMATION

INTERNAL_I8042_START_INFORMATION指定由供应商提供的可选高级筛选器设备驱动程序可用于将其操作与 I8042prt ISR 同步的中断对象。
OUTPUT_PACKET

OUTPUT_PACKET包含有关 I8042prt 写入键盘或鼠标设备的数据的信息。
USAGE_AND_PAGE

USAGE_AND_PAGE 结构指定 HID 控件的使用情况页和用法 ID。
VHF_CONFIG

包含 HID 源驱动程序在调用 VhfCreate 创建虚拟 HID 设备时提供的初始配置信息。