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 fürVhfCreate bereitgestellten VHF_CONFIG-Struktur angegeben.

[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

Keine

Bemerkungen

Es gibt vier Arten von asynchronen Vorgängen, die Ihr HID-Quelltreiber unterstützen kann: GetFeature, SetFeature, WriteReport und 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 diese beim Virtual HID Framework (VHF) im Aufruf der VhfCreate-Funktion des Treibers registrieren, nachdem WdfDeviceCreate aufgerufen wurde. Beispielsweise muss der Treiber für GetFeatureEvtVhfAsyncOperation 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 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 auf 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.

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

Anforderungen

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

Siehe auch

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