Condividi tramite


struttura VHF_CONFIG (vhf.h)

Contiene informazioni di configurazione iniziali fornite dal driver di origine HID quando chiama VhfCreare per creare un dispositivo HID virtuale.

Sintassi

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;

Membri

Size

Obbligatorio. Dimensione di questa struttura inizializzata da VHF_CONFIG_INIT.

VhfClientContext

Opzionale. Puntatore opaco alla memoria allocata dal driver di origine HID passato da Virtual HID Framework (VHF) quando richiama tali funzioni di callback.

OperationContextSize

Opzionale. Dimensioni del buffer che VHF deve allocare per un'operazione asincrona avviata da EvtVhfAsyncOperation. Se non è zero, VHF alloca un buffer di questa dimensione e passa un puntatore a tale buffer nel parametro VhfOperationContext ogni volta che richiama EvtVhfAsyncOperation per avviare una nuova operazione.

DeviceObject

Obbligatorio per i driver in modalità kernel. Puntatore alla struttura DEVICE_OBJECT per il driver di origine HID. Ottenere tale puntatore chiamando WdfDeviceWdmGetDeviceObject e passando l'handle WDFDEVICE ricevuto dal driver nella chiamata WdfDeviceCreate.

FileHandle

Obbligatorio per i driver in modalità utente. Handle di file ottenuto chiamando WdfIoTargetWdmGetTargetFileHandle. Per aprire un file WDFIOTARGET, un driver di origine VHF (UMDF) in modalità utente deve chiamare WdfIoTargetOpen con OpenParams.Type impostato su WdfIoTargetOpenLocalTargetByFile.

VendorID

Opzionale. ID fornitore del dispositivo HID virtuale da creare.

ProductID

Opzionale. ID prodotto del dispositivo HID virtuale da creare.

VersionNumber

Opzionale. Numero di versione del dispositivo HID virtuale da creare.

ContainerID

Opzionale. ID contenitore del dispositivo HID virtuale da creare.

InstanceIDLength

InstanceID

ReportDescriptorLength

Obbligatorio. Lunghezza del descrittore di report HID contenuto in un buffer a cui punta ReportDescriptor.

ReportDescriptor

Obbligatorio. Puntatore a un buffer allocato dal driver di origine HID che contiene il descrittore di report HID.

EvtVhfReadyForNextReadReport

Opzionale. Puntatore a un EvtVhfReadyForNextReadReport callback. Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole gestire i criteri di buffering per l'invio di report di input HID. Se questo callback viene specificato, VHF non memorizza tali report nel buffer. Il driver di origine HID deve inviare un report chiamando VhfReadReportSubmit, ogni volta che VHF richiama EvtVhfReadyForNextReadReport.

EvtVhfAsyncOperationGetFeature

Opzionale. Puntatore a un EvtVhfAsyncOperation callback. Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole ottenere un report di funzionalità HID associato a un Top-Level Collection dalla coppia di driver di classe HID. Il driver può ottenere un report di funzionalità solo se il descrittore del report lo dichiara.

EvtVhfAsyncOperationSetFeature

Opzionale. Puntatore a un EvtVhfAsyncOperation callback. Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole inviare un report di funzionalità HID associato a un Top-Level Collection alla coppia di driver di classe HID. Il driver può impostare un report funzionalità solo se il descrittore di report lo dichiara.

EvtVhfAsyncOperationWriteReport

Opzionale. Puntatore a un EvtVhfAsyncOperation callback. Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole supportare i report di output HID e inviarli alla coppia di driver di classe HID.

EvtVhfAsyncOperationGetInputReport

Opzionale. Puntatore a un EvtVhfAsyncOperation callback. Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole supportare la query su richiesta per i report di input.

EvtVhfCleanup

Opzionale. Puntatore a un callback di EvtVhfCleanup. Il driver di origine HID può implementare e registrare questa funzione di callback se vuole liberare le risorse allocate per il dispositivo HID virtuale.

HardwareIDsLength

HardwareIDs

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Nessuna supportata
intestazione vhf.h

Vedere anche

scrivere un driver di origine HID usando VHF (Virtual HID Framework)