Partager via


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ée dans la structure VHF_CONFIG fournie à VhfCreate pour créer le périphérique 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é par le pilote source HID et la paire de pilotes classe/mini HID 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 aux requêtes IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT IOCTL_HID_GET_INPUT_REPORT qu’un minidriver de transport HID implémente.
 
Pour prendre en charge une telle 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 à la fonction VhfCreate après l’appel de 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 VHF. Si le pilote a spécifié une valeur différente de zéro dans le membre OperationContextSize du VHF_CONFIG pendant 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 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 terminée, la mémoire tampon est remplie par le pilote source HID avec le rapport de fonctionnalités HID demandé.

Une fois l’opération terminée, la source HID appelle VhfAsyncOperationComplete pour signaler l’achèvement status.

Configuration requise

Condition requise Valeur
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)