Compartir a través de


EVT_VHF_ASYNC_OPERATION función de devolución de llamada (vhf.h)

El controlador de origen HID implementa esta devolución de llamada de eventos si quiere admitir una de las cuatro operaciones asincrónicas para obtener y establecer informes HID.

Sintaxis

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

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

Parámetros

[in] VhfClientContext

Puntero opaco a un búfer definido por el controlador de origen HID que el controlador pasó en la estructura VHF_CONFIG proporcionada a VhfCreate para crear el dispositivo HID virtual.

[in] VhfOperationHandle

Identificador opaco que identifica de forma única esta operación asincrónica.

[in, optional] VhfOperationContext

Puntero a un búfer que el controlador de origen HID puede usar para mantener la operación. El controlador de origen HID especifica el tamaño del búfer en la estructura de VHF_CONFIG proporcionada a VhfCreate.

[in] HidTransferPacket

Puntero a una estructura HID_XFER_PACKET . Contiene información sobre un informe HID y lo usa el controlador de origen HID y el par de controladores hid/mini para solicitudes de E/S para obtener o establecer un informe.

Valor devuelto

None

Observaciones

Hay cuatro tipos de operaciones asincrónicas que el controlador de origen HID puede admitir: GetFeature, SetFeature, WriteReport, GetInputReport.

Nota Estas operaciones son análogas a IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT solicitudes que implementa un minidriver de transporte HID.
 
Para admitir esta operación, el controlador de origen HID debe implementar una función de devolución de llamada EvtVhfAsyncOperation y registrarla con virtual HID Framework (VHF) en la llamada del controlador a la función VhfCreate después de llamar a WdfDeviceCreate. Por ejemplo, para GetFeature, el controlador debe implementar EvtVhfAsyncOperation y establecer el miembro EvtVhfAsyncOperationGetFeature del VHF_CONFIG en un puntero de función de la función implementada.

Cuando VHF obtiene una solicitud que establece o consulta un informe HID, VHF invoca la función de devolución de llamada EvtVhfAsyncOperation registrada anteriormente y se inicia una operación asincrónica. Cada operación se identifica mediante un identificador VHFOPERATIONHANDLE establecido por VHF. Si el controlador especificó un valor distinto de cero en el miembro OperationContextSize del VHF_CONFIG durante la inicialización, VHF asigna un búfer de ese tamaño y pasa un puntero a ese búfer en el parámetro VhfOperationContext cuando invoca EvtVhfAsyncOperation.

HidTransferPacket es el búfer de transferencia para esta operación que apunta a una estructura asignada por VHF que contiene detalles específicos del informe HID. Por ejemplo, si la operación es GetFeature, al finalizar, el controlador de origen HID rellena el búfer con el informe de características HID solicitado.

Una vez completada la operación, el origen HID llama a VhfAsyncOperationComplete para notificar el estado de finalización.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible No se admite ninguno
Plataforma de destino Escritorio
Encabezado vhf.h
IRQL <=DISPATCH_LEVEL

Consulte también

Escribir un controlador de origen HID mediante Virtual HID Framework (VHF)