structure VHF_CONFIG (vhf.h)
Contient les informations de configuration initiale fournies par le pilote source HID lorsqu’il appelle VhfCreate pour créer un appareil HID virtuel.
Syntaxe
typedef struct _VHF_CONFIG {
ULONG Size;
PVOID VhfClientContext;
ULONG OperationContextSize;
#ifdef _KERNEL_MODE
PDEVICE_OBJECT DeviceObject;
#else
HANDLE FileHandle;
#endif
USHORT VendorID;
USHORT ProductID;
USHORT VersionNumber;
GUID ContainerID;
USHORT InstanceIDLength;
_Field_size_bytes_full_(InstanceIDLength)
PWSTR InstanceID;
USHORT ReportDescriptorLength;
_Field_size_full_(ReportDescriptorLength)
PUCHAR ReportDescriptor;
PEVT_VHF_READY_FOR_NEXT_READ_REPORT EvtVhfReadyForNextReadReport;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationGetFeature;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationSetFeature;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationWriteReport;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationGetInputReport;
PEVT_VHF_CLEANUP EvtVhfCleanup;
USHORT HardwareIDsLength;
_Field_size_bytes_full_(HardwareIDsLength)
PWSTR HardwareIDs;
} VHF_CONFIG, *PVHF_CONFIG;
Membres
Size
Obligatoire. Taille de cette structure initialisée par VHF_CONFIG_INIT.
VhfClientContext
facultatif. Pointeur opaque vers la mémoire allouée au pilote source HID que le VHF (Virtual HID Framework) transmet lorsqu’il appelle ces fonctions de rappel.
OperationContextSize
facultatif. Taille de la mémoire tampon que VHF doit allouer pour une opération asynchrone démarrée par EvtVhfAsyncOperation. S’il n’est pas égal à zéro, VHF alloue une mémoire tampon de cette taille et transmet un pointeur vers cette mémoire tampon dans le paramètre VhfOperationContext chaque fois qu’il appelle EvtVhfAsyncOperation pour démarrer une nouvelle opération.
DeviceObject
Obligatoire pour les pilotes en mode noyau. Pointeur vers la structure DEVICE_OBJECT pour le pilote source HID. Obtenez ce pointeur en appelant WdfDeviceWdmGetDeviceObject et en passant le handle WDFDEVICE que le pilote a reçu dans l’appel WdfDeviceCreate .
FileHandle
Obligatoire pour les pilotes en mode utilisateur. Handle de fichier obtenu en appelant WdfIoTargetWdmGetTargetFileHandle. Pour ouvrir un WDFIOTARGET, un pilote source VHF en mode utilisateur (UMDF) doit appeler WdfIoTargetOpen avec OpenParams.Type défini sur WdfIoTargetOpenLocalTargetByFile.
VendorID
facultatif. ID de fournisseur de l’appareil HID virtuel à créer.
ProductID
facultatif. ID de produit de l’appareil HID virtuel à créer.
VersionNumber
facultatif. Numéro de version de l’appareil HID virtuel à créer.
ContainerID
facultatif. ID de conteneur de l’appareil HID virtuel à créer.
InstanceIDLength
InstanceID
ReportDescriptorLength
Obligatoire. Longueur du descripteur de rapport HID contenu dans une mémoire tampon pointée par ReportDescriptor.
ReportDescriptor
Obligatoire. Pointeur vers une mémoire tampon allouée au pilote source HID qui contient le descripteur de rapport HID.
EvtVhfReadyForNextReadReport
facultatif. Pointeur vers un rappel EvtVhfReadyForNextReadReport . Le pilote source HID doit implémenter et inscrire cette fonction de rappel s’il souhaite gérer la stratégie de mise en mémoire tampon pour l’envoi de rapports d’entrée HID. Si ce rappel est spécifié, VHF ne met pas en mémoire tampon ces rapports. Le pilote source HID doit envoyer un rapport en appelant VhfReadReportSubmit, chaque fois que VHF appelle EvtVhfReadyForNextReadReport.
EvtVhfAsyncOperationGetFeature
facultatif. Pointeur vers un rappel EvtVhfAsyncOperation . Le pilote source HID doit implémenter et inscrire cette fonction de rappel s’il souhaite obtenir un rapport de fonctionnalités HID associé à une collection de niveau supérieur à partir de la paire de pilotes de classe HID. Le pilote peut obtenir un rapport de fonctionnalités uniquement si le descripteur de rapport le déclare.
EvtVhfAsyncOperationSetFeature
facultatif. Pointeur vers un rappel EvtVhfAsyncOperation . Le pilote source HID doit implémenter et inscrire cette fonction de rappel s’il souhaite envoyer un rapport de fonctionnalités HID associé à une collection de niveau supérieur à la paire de pilotes de classe HID. Le pilote peut définir un rapport de fonctionnalités uniquement si le descripteur de rapport le déclare.
EvtVhfAsyncOperationWriteReport
facultatif. Pointeur vers un rappel EvtVhfAsyncOperation . Le pilote source HID doit implémenter et inscrire cette fonction de rappel s’il souhaite prendre en charge des rapports de sortie HID et les envoyer à la paire de pilotes de classe HID.
EvtVhfAsyncOperationGetInputReport
facultatif. Pointeur vers un rappel EvtVhfAsyncOperation . Le pilote source HID doit implémenter et inscrire cette fonction de rappel s’il souhaite prendre en charge la requête à la demande pour les rapports d’entrée.
EvtVhfCleanup
facultatif. Pointeur vers un rappel EvtVhfCleanup . Le pilote source HID peut implémenter et inscrire cette fonction de rappel s’il souhaite libérer les ressources allouées pour l’appareil HID virtuel.
HardwareIDsLength
HardwareIDs
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
Serveur minimal pris en charge | Aucun pris en charge |
En-tête | vhf.h |
Voir aussi
Écrire un pilote source HID à l’aide de Virtual HID Framework (VHF)