Freigeben über


VHF_CONFIG-Struktur (vhf.h)

Enthält anfängliche Konfigurationsinformationen, die vom HID-Quelltreiber bereitgestellt werden, wenn er VhfCreate aufruft , 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, die von VHF_CONFIG_INIT initialisiert wird.

VhfClientContext

Optional. Ein undurchsichtiger Zeiger auf den vom HID-Quelltreiber zugewiesenen Arbeitsspeicher, den das Virtual HID Framework (VHF) beim Aufrufen dieser Rückruffunktionen übergibt.

OperationContextSize

Optional. Größe des Puffers, den VHF für einen asynchronen Vorgang zuordnen muss, der von EvtVhfAsyncOperation gestartet wird. Wenn der Wert ungleich 0 ist, weist VHF einen Puffer dieser Größe zu und übergibt bei jedem Aufruf von EvtVhfAsyncOperation einen Zeiger auf diesen Puffer im VhfOperation-Parameter, 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 das WDFDEVICE-Handle übergeben, das der Treiber im WdfDeviceCreate-Aufruf empfangen hat.

FileHandle

Erforderlich für Benutzermodustreiber. Ein Dateihandle, das durch Aufrufen von WdfIoTargetWdmGetTargetFileHandle abgerufen wird. Zum Öffnen eines WDFIOTARGET sollte ein UMDF-VHF-Quelltreiber WdfIoTargetOpen aufrufen, wobei OpenParams.Type auf WdfIoTargetOpenLocalTargetByFile festgelegt ist.

VendorID

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

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 zu erstellenden virtuellen HID-Geräts.

InstanceIDLength

InstanceID

ReportDescriptorLength

Erforderlich. Die Länge des HID-Berichtsdeskriptors, der in einem Puffer enthalten ist, auf den 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 er die Pufferrichtlinie für die Übermittlung von HID-Eingabeberichten verarbeiten möchte. Wenn dieser Rückruf angegeben wird, puffert VHF diese Berichte nicht. Der HID-Quelltreiber sollte einen Bericht übermitteln, indem er VhfReadReportSubmit aufruft, 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 er einen HID-Featurebericht abrufen möchte, der einer Sammlung der obersten Ebene aus dem HID-Klassentreiberpaar zugeordnet ist. Der Treiber kann einen Featurebericht nur abrufen, wenn er vom Berichtsdeskriptor deklariert wird.

EvtVhfAsyncOperationSetFeature

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn er einen HID-Featurebericht senden möchte, der einer Sammlung der obersten Ebene zugeordnet ist, an das HID-Klassentreiberpaar. Der Treiber kann einen Featurebericht nur dann festlegen, wenn er vom Berichtsdeskriptor deklariert wird.

EvtVhfAsyncOperationWriteReport

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

EvtVhfAsyncOperationGetInputReport

Optional. Ein Zeiger auf einen EvtVhfAsyncOperation-Rückruf . Der HID-Quelltreiber muss diese Rückruffunktion implementieren und registrieren, wenn er bedarfsgesteuerte Abfragen für Eingabeberichte unterstützen möchte.

EvtVhfCleanup

Optional. Ein Zeiger auf einen EvtVhfCleanup-Rückruf . Der HID-Quelltreiber kann diese Rückruffunktion implementieren und registrieren, wenn er die zugeordneten Ressourcen für das virtuelle HID-Gerät freigeben möchte.

HardwareIDsLength

HardwareIDs

Anforderungen

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

Weitere Informationen

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