Partager via


EVT_VHF_ASYNC_OPERATION fonction de rappel (vhf.h)

Le pilote source HID implémente ce rappel d’événements s’il souhaite prendre en charge l’une des quatre opérations asynchrones pour obtenir et définir des rapports HID.

Syntaxe

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

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

Paramètres

[in] VhfClientContext

Pointeur opaque vers une mémoire tampon définie par le pilote source HID que le pilote a passé dans la structure VHF_CONFIG fournie à VhfCreate pour créer l’appareil HID virtuel.

[in] VhfOperationHandle

Handle opaque qui identifie de façon unique cette opération asynchrone.

[in, optional] VhfOperationContext

Pointeur vers une mémoire tampon qui peut être utilisée par le pilote source HID pour la maintenance de l’opération. La taille de la mémoire tampon est spécifiée par le pilote source HID dans la structure VHF_CONFIG fournie à VhfCreate.

[in] HidTransferPacket

Pointeur vers une structure HID_XFER_PACKET. Contient des informations sur un rapport HID et est utilisé par le pilote source HID et la paire de pilotes HID class/mini pour les demandes d’E/S pour obtenir ou définir un rapport.

Valeur de retour

Aucun

Remarques

Il existe quatre types d’opérations asynchrones que votre pilote source HID peut prendre en charge : GetFeature, SetFeature, WriteReport, GetInputReport.

Remarque Ces opérations sont analogues à IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT demandes qu’un minidriver de transport HID implémente.
 
Pour prendre en charge cette opération, le pilote source HID doit implémenter une fonction de rappel EvtVhfAsyncOperation et l’inscrire auprès de Virtual HID Framework (VHF) dans l’appel du pilote à fonction VhfCreate après avoir appelé WdfDeviceCreate. Par exemple, pour getFeature, le pilote doit implémenter EvtVhfAsyncOperation et définir le EvtVhfAsyncOperationGetFeature membre du VHF_CONFIG sur un pointeur de fonction de la fonction implémentée.

Lorsque VHF obtient une requête qui définit ou interroge un rapport HID, VHF appelle la EvtVhfAsyncOperation fonction de rappel et une opération asynchrone démarre. Chaque opération est identifiée par un handle VHFOPERATIONHANDLE défini par VHF. Si le pilote a spécifié une valeur non nulle dans l'OperationContextSize membre de l'VHF_CONFIG lors de l’initialisation, VHF alloue une mémoire tampon de cette taille et transmet un pointeur à cette mémoire tampon dans le paramètre VhfOperationContext lorsqu’il appelle EvtVhfAsyncOperation.

HidTransferPacket est la mémoire tampon de transfert pour cette opération qui pointe vers une structure allouée par VHF contenant des détails spécifiques au rapport HID. Par exemple, si l’opération est GetFeature, une fois la mémoire tampon terminée, elle est remplie par le pilote source HID avec le rapport de fonctionnalité HID demandé.

Une fois l’opération terminée, les appels sources HID VhfAsyncOperationComplete pour signaler l’état d’achèvement.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Aucun pris en charge
plateforme cible Bureau
d’en-tête vhf.h
IRQL <=DISPATCH_LEVEL

Voir aussi

écrire un pilote source HID à l’aide du Virtual HID Framework (VHF)