Partager via


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)