EVT_VHF_ASYNC_OPERATION回调函数 (vhf.h)
如果 HID 源驱动程序想要支持四个异步操作之一来获取和设置 HID 报表,则它实现此事件回调。
语法
EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;
void EvtVhfAsyncOperation(
[in] PVOID VhfClientContext,
[in] VHFOPERATIONHANDLE VhfOperationHandle,
[in, optional] PVOID VhfOperationContext,
[in] PHID_XFER_PACKET HidTransferPacket
)
{...}
参数
[in] VhfClientContext
指向 HID 源驱动程序定义的缓冲区的不透明指针,驱动程序传递到提供给 VhfCreate 以创建虚拟 HID 设备的VHF_CONFIG结构中。
[in] VhfOperationHandle
唯一标识此异步操作的不透明句柄。
[in, optional] VhfOperationContext
指向可由 HID 源驱动程序用于维护操作的缓冲区的指针。 缓冲区的大小由提供给 VhfCreate 的 VHF_CONFIG 结构中的 HID 源驱动程序指定。
[in] HidTransferPacket
指向 HID_XFER_PACKET 结构的指针。 包含有关 HID 报表的信息,HID 源驱动程序和 HID 类/微型驱动程序对用于 I/O 请求以获取或设置报表。
返回值
无
备注
HID 源驱动程序可以支持四种类型的异步操作: GetFeature、 SetFeature、 WriteReport、 GetInputReport。
当 VHF 获取设置或查询 HID 报表的请求时,VHF 会调用以前注册的 EvtVhfAsyncOperation 回调函数,并启动异步操作。 每个操作都由 VHF 设置的 VHFOPERATIONHANDLE 句柄标识。 如果驱动程序在初始化期间在 VHF_CONFIG的 OperationContextSize 成员中指定了非零值,则 VHF 在调用 EvtVhfAsyncOperation 时,会分配该大小的缓冲区,并在 VhfOperationContext 参数中传递指向该缓冲区的指针。
HidTransferPacket 是此操作的传输缓冲区,它指向包含特定于 HID 报表的详细信息的 VHF 分配结构。 例如,如果操作为 GetFeature,则完成后,HID 源驱动程序将使用请求的 HID 功能报告填充缓冲区。
操作完成后,HID 源调用 VhfAsyncOperationComplete 来报告完成状态。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
最低受支持的服务器 | 无受支持的版本 |
目标平台 | 桌面 |
标头 | vhf.h |
IRQL | <=DISPATCH_LEVEL |