Freigeben über


EVT_VHF_ASYNC_OPERATION Rückruffunktion (vhf.h)

Der HID-Quelltreiber implementiert diesen Ereignisrückruf, wenn er einen der vier asynchronen Vorgänge zum Abrufen und Festlegen von HID-Berichten unterstützen möchte.

Syntax

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

VOID EvtVhfAsyncOperation(
  [in]           PVOID VhfClientContext,
  [in]           VHFOPERATIONHANDLE VhfOperationHandle,
  [in, optional] PVOID VhfOperationContext,
  [in]           PHID_XFER_PACKET HidTransferPacket
)
{...}

Parameter

[in] VhfClientContext

Ein undurchsichtiger Zeiger auf einen vom HID-Quelltreiber definierten Puffer, den der Treiber in der VHF_CONFIG Struktur übergeben hat, die an VhfCreate übergeben wurde, um das virtuelle HID-Gerät zu erstellen.

[in] VhfOperationHandle

Ein undurchsichtiges Handle, das diesen asynchronen Vorgang eindeutig identifiziert.

[in, optional] VhfOperationContext

Zeiger auf einen Puffer, der vom HID-Quelltreiber für die Wartung des Vorgangs verwendet werden kann. Die Größe des Puffers wird durch den HID-Quelltreiber in der VHF_CONFIG Struktur angegeben, die für VhfCreatebereitgestellt wird.

[in] HidTransferPacket

Ein Zeiger auf eine HID_XFER_PACKET Struktur. Enthält Informationen zu einem HID-Bericht und wird vom HID-Quelltreiber und dem HID-Klassen-/Minitreiberpaar für E/A-Anforderungen zum Abrufen oder Festlegen eines Berichts verwendet.

Rückgabewert

Nichts

Bemerkungen

Es gibt vier Typen asynchroner Vorgänge, die der HID-Quelltreiber unterstützen kann: GetFeature-, SetFeature-, WriteReport, GetInputReport.

Hinweis Diese Vorgänge sind analog zu IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT Anforderungen, die ein HID-Transport-Minidriver implementiert.
 
Um einen solchen Vorgang zu unterstützen, muss der HID-Quelltreiber eine EvtVhfAsyncOperation Rückruffunktion implementieren und beim Virtual HID Framework (VHF) im Aufruf des Treibers an VhfCreate-Funktion registrieren, nachdem WdfDeviceCreateaufgerufen wurde. For example, for GetFeature, the driver must implement EvtVhfAsyncOperation and set the EvtVhfAsyncOperationGetFeature member of the VHF_CONFIG to a function pointer of the implement function.

Wenn VHF eine Anforderung abruft, die einen HID-Bericht festlegt oder abfragt, ruft VHF die zuvor registrierte EvtVhfAsyncOperation Rückruffunktion auf, und ein asynchroner Vorgang wird gestartet. Jeder Vorgang wird durch ein VHFOPERATIONHANDLE-Handle identifiziert, das von VHF festgelegt wird. Wenn der Treiber einen Wert ungleich Null im OperationContextSize Member der VHF_CONFIG während der Initialisierung angegeben hat, weist VHF einen Puffer dieser Größe zu und übergibt einen Zeiger an diesen Puffer im VhfOperationContext Parameter, wenn er EvtVhfAsyncOperationaufruft.

HidTransferPacket ist der Übertragungspuffer für diesen Vorgang, der auf eine VHF-zugeordnete Struktur verweist, die HID-Berichtsspezifische Details enthält. Wenn der Vorgang beispielsweise GetFeatureist, wird der Puffer nach Abschluss vom HID-Quelltreiber mit dem angeforderten HID-Featurebericht ausgefüllt.

Wenn der Vorgang abgeschlossen ist, ruft die HID-Quelle VhfAsyncOperationComplete- auf, um den Abschlussstatus zu melden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
mindestens unterstützte Server- Keine unterstützt
Zielplattform- Desktop
Header- vhf.h
IRQL- <=DISPATCH_LEVEL

Siehe auch

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