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 an VhfCreate bereitgestellten VHF_CONFIG-Struktur übergeben hat, 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-Klasse/Mini-Treiberpaar für E/A-Anforderungen zum Abrufen oder Festlegen eines Berichts verwendet.

Rückgabewert

Keine

Bemerkungen

Es gibt vier Arten von asynchronen Vorgängen, die ihr HID-Quelltreiber unterstützen kann: GetFeature, SetFeature, WriteReport, GetInputReport.

Hinweis Diese Vorgänge entsprechen IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORTIOCTL_HID_GET_INPUT_REPORT Anforderungen, die ein HID-Transportminidriver implementiert.
 
Um einen solchen Vorgang zu unterstützen, muss der HID-Quelltreiber eine EvtVhfAsyncOperation-Rückruffunktion implementieren und sie beim Virtual HID Framework (VHF) im Aufruf der VhfCreate-Funktion des Treibers registrieren, nachdem WdfDeviceCreate aufgerufen wurde. Für GetFeature muss der Treiber beispielsweise 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 Rückruffunktion EvtVhfAsyncOperation auf, und ein asynchroner Vorgang wird gestartet. Jeder Vorgang wird durch ein VHFOPERATIONHANDLE-Handle identifiziert, das von VHF festgelegt wird. Wenn der Treiber während der Initialisierung im OperationContextSize-Member des VHF_CONFIG einen Wert ungleich null angegeben hat, weist VHF einen Puffer dieser Größe zu und übergibt einen Zeiger an diesen Puffer im VhfOperationContext-Parameter , wenn evtVhfAsyncOperation aufgerufen wird.

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 GetFeature lautet, wird der Puffer nach Abschluss vom HID-Quelltreiber mit dem angeforderten HID-Featurebericht gefüllt.

Nach Abschluss des Vorgangs ruft die HID-Quelle VhfAsyncOperationComplete auf, um den Abschluss status zu melden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Nicht unterstützt
Zielplattform Desktop
Kopfzeile vhf.h
IRQL <=DISPATCH_LEVEL

Weitere Informationen

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