Partager via


structure VHF_CONFIG (vhf.h)

Contient les informations de configuration initiales fournies par le pilote source HID lorsqu’il appelle VhfCreate pour créer un périphérique 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

Optionnel. Pointeur opaque vers la mémoire allouée par le pilote source HID que le VHF (Virtual HID Framework) transmet lorsqu’il appelle ces fonctions de rappel.

OperationContextSize

Optionnel. Taille de la mémoire tampon que VHF doit allouer pour une opération asynchrone démarrée par EvtVhfAsyncOperation. Si ce n’est pas 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 reçu par le pilote 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 doit appeler WdfIoTargetOpen avec OpenParams.Type défini sur WdfIoTargetOpenLocalTargetByFile.

VendorID

Optionnel. ID du fournisseur de l’appareil HID virtuel à créer.

ProductID

Optionnel. ID de produit de l’appareil HID virtuel à créer.

VersionNumber

Optionnel. Numéro de version de l’appareil HID virtuel à créer.

ContainerID

Optionnel. 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

Optionnel. Pointeur vers un rappel EvtVhfReadyForNextReadReport. Le pilote source HID doit implémenter et inscrire cette fonction de rappel si elle 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

Optionnel. Pointeur vers un rappel EvtVhfAsyncOperation. Le pilote source HID doit implémenter et inscrire cette fonction de rappel si elle souhaite obtenir un rapport de fonctionnalité HID associé à un Top-Level Collection à partir de la paire de pilotes de classe HID. Le pilote peut obtenir un rapport de fonctionnalité uniquement si le descripteur de rapport le déclare.

EvtVhfAsyncOperationSetFeature

Optionnel. Pointeur vers un rappel EvtVhfAsyncOperation. Le pilote source HID doit implémenter et inscrire cette fonction de rappel si elle souhaite envoyer un rapport de fonctionnalité HID associé à une Top-Level Collection à la paire de pilotes de classe HID. Le pilote peut définir un rapport de fonctionnalité uniquement si le descripteur de rapport le déclare.

EvtVhfAsyncOperationWriteReport

Optionnel. Pointeur vers un rappel EvtVhfAsyncOperation. Le pilote source HID doit implémenter et inscrire cette fonction de rappel si elle souhaite prendre en charge les rapports de sortie HID et les envoyer à la paire de pilotes de classe HID.

EvtVhfAsyncOperationGetInputReport

Optionnel. Pointeur vers un rappel EvtVhfAsyncOperation. Le pilote source HID doit implémenter et inscrire cette fonction de rappel si elle souhaite prendre en charge la requête à la demande pour les rapports d’entrée.

EvtVhfCleanup

Optionnel. Pointeur vers un rappel EvtVhfCleanup. Le pilote source HID peut implémenter et inscrire cette fonction de rappel si elle souhaite libérer les ressources allouées pour l’appareil HID virtuel.

HardwareIDsLength

HardwareIDs

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Aucun pris en charge
d’en-tête vhf.h

Voir aussi

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