EVT_VHF_ASYNC_OPERATION Rückruffunktion (vhf.h)

Der HID-Quelltreiber implementiert diesen Ereignisanruf, wenn er einen der vier asynchronen Vorgänge unterstützt, um HID-Berichte abzurufen und festzulegen.

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 HID-Quelltreiber-definierten Puffer, den der Treiber in der VHF_CONFIG Struktur übergeben hat, die an VhfCreate bereitgestellt 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 vom HID-Quelltreiber in der VHF_CONFIG Struktur angegeben, die für VhfCreate bereitgestellt 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 I/O-Anforderungen verwendet, um einen Bericht abzurufen oder festzulegen.

Rückgabewert

Keine

Bemerkungen

Es gibt vier Arten asynchroner Vorgänge, die Ihr 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 diesen Vorgang zu unterstützen, muss der HID-Quelltreiber eine EvtVhfAsyncOperation-Rückruffunktion implementieren und mit dem Virtual HID Framework (VHF) im Aufruf des Treibers nach dem Aufrufen von WdfDeviceCreate registrieren. Für GetFeature muss der Treiber z. B. EvtVhfAsyncOperation implementieren und das EvtVhfAsyncOperationGetFeature-Element des VHF_CONFIG auf einen Funktionszeiger der implementierten Funktion festlegen.

Wenn VHF eine Anforderung erhält, 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 einen VHFOPERATIONHANDLE-Handle identifiziert, der von VHF festgelegt wird. Wenn der Treiber einen Nicht-Null-Wert im OperationContextSize-Element 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 EvtVhfAsyncOperation aufruft.

HidTransferPacket ist der Transferpuffer für diesen Vorgang, der auf eine VHF-zugewiesene Struktur verweist, die HID Report-spezifische Details enthält. Wenn der Vorgang beispielsweise GetFeature ist, wird der Puffer nach Abschluss vom HID-Quelltreiber mit dem angeforderten HID-Featurebericht ausgefüllt.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Nicht unterstützt
Zielplattform Power BI Desktop
Header vhf.h
IRQL <=DISPATCH_LEVEL

Weitere Informationen

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