Condividi tramite


EVT_VHF_ASYNC_OPERATION funzione di callback (vhf.h)

Il driver di origine HID implementa questo callback dell'evento se vuole supportare una delle quattro operazioni asincrone per ottenere e impostare i 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 nel VHF_CONFIG struttura 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 VHF_CONFIG fornita a VhfCreate.

[in] HidTransferPacket

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

Valore restituito

nessuno

Osservazioni

Esistono quattro tipi di operazioni asincrone che il driver di origine HID può supportare: GetFeature, SetFeature, WriteReport, GetInputReport.

Nota Queste operazioni sono analoghe a IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT richieste che un minidriver di trasporto HID implementa.
 
Per supportare tale operazione, il driver di origine HID deve implementare una funzione di callback EvtVhfAsyncOperation 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 membro EvtVhfAsyncOperationGetFeature del VHF_CONFIG su un puntatore di funzione della funzione implementata.

Quando VHF ottiene una richiesta che imposta o esegue query su un report HID, VHF richiama la funzione di callback EvtVhfAsyncOperation registrata in precedenza 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 EvtVhfAsyncOperationOperation.

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 del 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.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Nessuno supportato
Piattaforma di destinazione Desktop
Intestazione vhf.h
IRQL <=DISPATCH_LEVEL

Vedi anche

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