Condividi tramite


struttura VHF_CONFIG (vhf.h)

Contiene informazioni di configurazione iniziali fornite dal driver di origine HID quando chiama VhfCreate 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;

Members

Size

Obbligatorio. Dimensioni di questa struttura inizializzata da VHF_CONFIG_INIT.

VhfClientContext

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

OperationContextSize

facoltativo. Dimensioni del buffer che VHF deve allocare per un'operazione asincrona avviata da EvtVhfAsyncOperation. Se non è zero, VHF alloca un buffer di queste dimensioni e passa un puntatore al 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 il 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 wdFIOTARGET, un driver di origine VHF (UMDF) in modalità utente deve chiamare WdfIoTargetOpen con OpenParams.Type impostato su WdfIoTargetOpenLocalTargetByFile.

VendorID

facoltativo. ID fornitore del dispositivo HID virtuale da creare.

ProductID

facoltativo. ID prodotto del dispositivo HID virtuale da creare.

VersionNumber

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

ContainerID

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

facoltativo. Puntatore a un callback EvtVhfReadyForNextReadReport . 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

facoltativo. Puntatore a un callback EvtVhfAsyncOperation . Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole ottenere un report di funzionalità HID associato a una raccolta di livello superiore dalla coppia di driver di classe HID. Il driver può ottenere un report delle funzionalità solo se il descrittore di report lo dichiara.

EvtVhfAsyncOperationSetFeature

facoltativo. Puntatore a un callback EvtVhfAsyncOperation . Il driver di origine HID deve implementare e registrare questa funzione di callback se vuole inviare un report di funzionalità HID associato a una raccolta di livello superiore alla coppia di driver di classe HID. Il driver può impostare un report delle funzionalità solo se il descrittore di report lo dichiara.

EvtVhfAsyncOperationWriteReport

facoltativo. Puntatore a un callback EvtVhfAsyncOperation . 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

facoltativo. Puntatore a un callback EvtVhfAsyncOperation . 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

facoltativo. Puntatore a un callback 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

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Nessuno supportato
Intestazione vhf.h

Vedi anche

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