Condividi tramite


EVT_VHF_ASYNC_OPERATION funzione di callback (vhf.h)

Il driver di origine HID implementa questo callback di eventi se vuole supportare una delle quattro operazioni asincrone per ottenere e impostare report HID.

Sintassi

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

void EvtVhfAsyncOperation(
  [in]           PVOID VhfClientContext,
  [in]           VHFOPERATIONHANDLE VhfOperationHandle,
  [in, optional] PVOID VhfOperationContext,
  [in]           PHID_XFER_PACKET HidTransferPacket
)
{...}

Parametri

[in] VhfClientContext

Puntatore opaco a un buffer definito dal driver di origine HID passato dal driver nella struttura VHF_CONFIG fornita a VhfCreate per creare il dispositivo HID virtuale.

[in] VhfOperationHandle

Handle opaco che identifica in modo univoco questa operazione asincrona.

[in, optional] VhfOperationContext

Puntatore a un buffer che può essere usato dal driver di origine HID per la manutenzione dell'operazione. Le dimensioni del buffer vengono specificate dal driver di origine HID nella struttura di VHF_CONFIG fornita per VhfCreate.

[in] HidTransferPacket

Puntatore a una struttura HID_XFER_PACKET. Contiene informazioni su un report HID e viene utilizzato dal driver di origine HID e dalla coppia di driver HID classe/mini driver per le richieste di I/O per ottenere o impostare un report.

Valore restituito

Nessuno

Osservazioni

Esistono quattro tipi di operazioni asincrone supportate dal driver di origine HID: GetFeature, SetFeature, WriteReport, GetInputReport.

Nota Tali operazioni sono analoghe a IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT richieste implementate da un minidriver di trasporto HID.
 
Per supportare tale operazione, il driver di origine HID deve implementare un EvtVhfAsyncOperation funzione di callback e registrarla con Virtual HID Framework (VHF) nella chiamata del driver alla funzione VhfCreate dopo aver chiamato WdfDeviceCreate. Ad esempio, per GetFeature, il driver deve implementare EvtVhfAsyncOperation e impostare il EvtVhfAsyncOperationGetFeature membro del VHF_CONFIG a un puntatore a funzione della funzione implementata.

Quando VHF ottiene una richiesta che imposta o esegue query su un report HID, VHF richiama il registrato in precedenza EvtVhfAsyncOperation funzione di callback e viene avviata un'operazione asincrona. Ogni operazione viene identificata da un handle VHFOPERATIONHANDLE impostato da VHF. Se il driver ha specificato un valore diverso da zero nel membro OperationContextSize del VHF_CONFIG durante l'inizializzazione, VHF alloca un buffer di tale dimensione e passa un puntatore a tale buffer nel parametro VhfOperationContext quando richiama EvtVhfAsyncOperation.

hidTransferPacket è il buffer di trasferimento per questa operazione che punta a una struttura allocata VHF contenente dettagli specifici del report HID. Ad esempio, se l'operazione è GetFeature, al completamento il buffer viene riempito dal driver di origine HID con il report delle funzionalità HID richiesto.

Al termine dell'operazione, l'origine HID chiama VhfAsyncOperationComplete per segnalare lo stato di completamento.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Nessuna supportata
piattaforma di destinazione Desktop
intestazione vhf.h
IRQL <=DISPATCH_LEVEL

Vedere anche

scrivere un driver di origine HID usando VHF (Virtual HID Framework)