人机接口设备 (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 设备时提供的初始配置信息。 |