VHF_CONFIG Struktur (vhf.h)

Enthält anfängliche Konfigurationsinformationen, die vom HID-Quelltreiber bereitgestellt werden, wenn VhfCreate aufgerufen wird, um ein virtuelles HID-Gerät zu erstellen.

Syntax

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;

Member

Size

Erforderlich. Größe dieser Struktur initialisiert durch VHF_CONFIG_INIT.

VhfClientContext

Optional. Ein undurchsichtiger Zeiger auf den vom HID-Quelltreiber zugewiesenen Speicher, den das Virtual HID Framework (VHF) übergibt, wenn diese Rückruffunktionen aufgerufen werden.

OperationContextSize

Optional. Größe des Puffers, den VHF für einen asynchronen Vorgang zuweisen muss, der von EvtVhfAsyncOperation gestartet wurde. Wenn keine Null ist, weist VHF einen Puffer dieser Größe zu und übergibt einen Zeiger an diesen Puffer im Parameter VhfOperationContext jedes Mal, wenn er EvtVhfAsyncOperation aufruft, um einen neuen Vorgang zu starten.

DeviceObject

Erforderlich für Kernelmodustreiber. Ein Zeiger auf die DEVICE_OBJECT Struktur für den HID-Quelltreiber. Rufen Sie diesen Zeiger ab, indem Sie WdfDeviceWdmGetDeviceObject aufrufen und den WDFDEVICE-Handle übergeben, den der Treiber im WdfDeviceCreate-Aufruf empfangen hat.

FileHandle

Erforderlich für Benutzermodustreiber. Ein Dateihandle, das durch Aufrufen von WdfIoTargetWdmGetFileHandle abgerufen wird. Um einen WDFIOTARGET-Treiber zu öffnen, sollte ein VHF-Quelltreiber WdfIoTargetOpen mit OpenParams.Type auf WdfIoTargetOpenLocalTargetByFile festgelegt werden.

VendorID

Optional. Anbieter-ID des virtuellen HID-Geräts, das erstellt werden soll.

ProductID

Optional. Produkt-ID des zu erstellenden virtuellen HID-Geräts.

VersionNumber

Optional. Versionsnummer des zu erstellenden virtuellen HID-Geräts.

ContainerID

Optional. Container-ID des virtuellen HID-Geräts, das erstellt werden soll.

InstanceIDLength

InstanceID

ReportDescriptorLength

Erforderlich. Die Länge des HID-Berichtsdeskriptors in einem Puffer, der von ReportDescriptor verweist.

ReportDescriptor

Erforderlich. Ein Zeiger auf einen VOM HID-Quelltreiber zugewiesenen Puffer, der den HID-Berichtsdeskriptor enthält.

EvtVhfReadyForNextReadReport

Optional. Ein Zeiger auf einen EvtVhfReadyForNextReadReport-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn sie die Pufferrichtlinie zum Übermitteln von HID-Eingabeberichten behandeln möchte. Wenn dieser Rückruf angegeben ist, puffert VHF diese Berichte nicht. Der HID-Quelltreiber sollte einen Bericht übermitteln, indem VhfReadReportSubmit aufgerufen wird, jedes Mal, wenn VHF EvtVhfReadyForNextReadReport aufruft.

EvtVhfAsyncOperationGetFeature

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn ein HID-Featurebericht abgerufen werden soll, der einer Sammlung auf oberster Ebene aus dem HID-Klassentreiberpaar zugeordnet ist. Der Treiber kann nur dann einen Featurebericht abrufen, wenn der Berichtsdeskriptor ihn deklariert.

EvtVhfAsyncOperationSetFeature

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn es einen HID-Featurebericht senden möchte, der einer Top-Level-Auflistung an das HID-Klassentreiberpaar zugeordnet ist. Der Treiber kann nur dann einen Featurebericht festlegen, wenn der Berichtsdeskriptor ihn deklariert.

EvtVhfAsyncOperationWriteReport

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn sie HID-Ausgabeberichte unterstützen und an das HID-Klassentreiberpaar senden möchten.

EvtVhfAsyncOperationGetInputReport

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn die On-Demand-Abfrage für Eingabeberichte unterstützt werden soll.

EvtVhfCleanup

Optional. Ein Zeiger auf einen EvtVhfCleanup-Rückruf . Der HID-Quelltreiber kann diese Rückruffunktion implementieren und registrieren, wenn die zugewiesenen Ressourcen für das virtuelle HID-Gerät freigegeben werden sollen.

HardwareIDsLength

HardwareIDs

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Nicht unterstützt
Header vhf.h

Siehe auch

Schreiben eines HID-Quelltreibers mithilfe von Virtual HID Framework (VHF)