EVT_VHF_ASYNC_OPERATION fonction de rappel (vhf.h)

Le pilote source HID implémente ce rappel d’événement 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 manière 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ée par le pilote source HID et la paire de pilotes HID/mini pour les demandes d’E/S pour obtenir ou définir un rapport.

Valeur de retour

None

Remarques

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

Note Ces opérations sont analogues à IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT demande 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 du virtual HID Framework (VHF) dans l’appel du pilote à la fonction VhfCreate après avoir appelé WdfDeviceCreate. Par exemple, pour GetFeature, le pilote doit implémenter EvtVhFAsyncOperation et définir le membre EvtVhfAsyncOperationGetFeature 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 fonction de rappel EvtVhfAsyncOperation précédemment inscrite et une opération asynchrone démarre. Chaque opération est identifiée par un handle VHFOPERATIONHANDLE défini par VHFF. Si le pilote a spécifié une valeur non nulle dans le membre OperationContextSize du VHF_CONFIG lors de l’initialisation, VHF alloue une mémoire tampon de cette taille et transmet un pointeur vers cette mémoire tampon dans le paramètre VhfOperationContext lorsqu’il appelle EvtVhFAsyncOperation.

HidTransferPacket est la mémoire tampon de transfert de 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, la source HID appelle VhfAsyncOperationComplete pour signaler l’état d’achèvement.

Configuration requise

   
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Desktop (Expérience utilisateur)
En-tête vhf.h
IRQL <=DISPATCH_LEVEL

Voir aussi

Écrire un pilote source HID à l’aide de Virtual HID Framework (VHF)