Compartilhar via


EVT_VHF_ASYNC_OPERATION função de retorno de chamada (vhf.h)

O driver de origem HID implementa esse retorno de chamada de evento se quiser dar suporte a uma das quatro operações assíncronas para obter e definir relatórios HID.

Sintaxe

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

Um ponteiro opaco para um buffer definido pelo driver de origem HID que o driver passou na estrutura VHF_CONFIG fornecida ao VhfCreate para criar o dispositivo HID virtual.

[in] VhfOperationHandle

Um identificador opaco que identifica exclusivamente essa operação assíncrona.

[in, optional] VhfOperationContext

Ponteiro para um buffer que pode ser usado pelo driver de origem HID para atender à operação. O tamanho do buffer é especificado pelo driver de origem HID na estrutura VHF_CONFIG fornecida ao VhfCreate.

[in] HidTransferPacket

Um ponteiro para uma estrutura HID_XFER_PACKET . Contém informações sobre um relatório HID e é usado pelo driver de origem HID e o par de classe/mini driver HID para solicitações de E/S para obter ou definir um relatório.

Retornar valor

Nenhum

Comentários

Há quatro tipos de operações assíncronas às quais o driver de origem HID pode dar suporte: GetFeature, SetFeature, WriteReport, GetInputReport.

Nota Essas operações são análogas a IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORTIOCTL_HID_GET_INPUT_REPORT solicitações implementadas por um minidriver de transporte HID.
 
Para dar suporte a essa operação, o driver de origem HID deve implementar uma função de retorno de chamada EvtVhfAsyncOperation e registrá-la na VHF (Virtual HID Framework) na chamada do driver para a função VhfCreate depois de chamar WdfDeviceCreate. Por exemplo, para GetFeature, o driver deve implementar EvtVhfAsyncOperation e definir o membro EvtVhfAsyncOperationGetFeature do VHF_CONFIG como um ponteiro de função da função implementada.

Quando o VHF obtém uma solicitação que define ou consulta um relatório HID, o VHF invoca a função de retorno de chamada EvtVhfAsyncOperation registrada anteriormente e uma operação assíncrona é iniciada. Cada operação é identificada por um identificador VHFOPERATIONHANDLE definido pelo VHF. Se o driver especificou um valor diferente de zero no membro OperationContextSize do VHF_CONFIG durante a inicialização, o VHF alocará um buffer desse tamanho e passará um ponteiro para esse buffer no parâmetro VhfOperationContext quando ele invocar EvtVhfAsyncOperation.

HidTransferPacket é o buffer de transferência para essa operação que aponta para uma estrutura alocada por VHF que contém detalhes específicos do relatório HID. Por exemplo, se a operação for GetFeature, após a conclusão, o buffer será preenchido pelo driver de origem HID com o Relatório de Recursos HID solicitado.

Quando a operação for concluída, a origem HID chamará VhfAsyncOperationComplete para relatar o status de conclusão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Área de Trabalho
Cabeçalho vhf.h
IRQL <=DISPATCH_LEVEL

Confira também

Gravar um driver de origem HID usando a VHF (Estrutura HID Virtual)