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
由驅動程式傳入提供給 VhfCreate 的VHF_CONFIG結構中,以建立虛擬 HID 裝置的 HID 來源驅動程式定義緩衝區不透明指標。
[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 時將該緩衝區的指標傳遞至該緩衝區。
HidTransferPacket 是此作業的傳輸緩衝區,指向包含 HID 報表特定詳細數據的 VHF 配置結構。 例如,如果作業是 GetFeature,當完成時,緩衝區會由 HID 來源驅動程式填入要求的 HID 功能報告。
當作業完成時,HID 來源會呼叫 VhfAsyncOperationComplete 來報告完成狀態。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
最低支援的伺服器 | 都不支援 |
目標平台 | 桌面 |
標頭 | vhf.h |
IRQL | <=DISPATCH_LEVEL |