共用方式為


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

由驅動程式傳入提供給 VhfCreateVHF_CONFIG結構中,以建立虛擬 HID 裝置的 HID 來源驅動程式定義緩衝區不透明指標。

[in] VhfOperationHandle

不透明句柄,可唯一識別此異步操作。

[in, optional] VhfOperationContext

HID 來源驅動程式可用來維護作業的緩衝區指標。 緩衝區的大小是由提供給 VhfCreateVHF_CONFIG 結構中的 HID 來源驅動程式所指定。

[in] HidTransferPacket

HID_XFER_PACKET 結構的指標。 包含 HID 報表的相關信息,並供 HID 來源驅動程式和 HID 類別/迷你驅動程式組使用,以供 I/O 要求取得或設定報表。

傳回值

備註

HID 來源驅動程式可支援的異步操作有四種: GetFeatureSetFeatureWriteReportGetInputReport

注意這些作業類似於 HID 傳輸迷你驅動程式實作IOCTL_HID_GET_FEATURE、IOCTL_HID_SET_FEATURE、IOCTL_HID_WRITE_REPORTIOCTL_HID_GET_INPUT_REPORT要求。
 
若要支援這類作業,HID 來源驅動程式必須在呼叫 WdfDeviceCreate 之後,實作 EvtVhfAsyncOperation 回呼函式,並在驅動程式呼叫 VhfCreate 之後,向虛擬 HID Framework) (VHF 註冊。 例如,針對 GetFeature,驅動程式必須實作 EvtVhfAsyncOperation,並將VHF_CONFIGEvtVhfAsyncOperationGetFeature 成員設定為實作函式的函式指標。

當 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

另請參閱

使用虛擬 HID Framework (VHF) 撰寫 HID 來源驅動程式