Compartilhar via


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

O driver de origem HID implementará 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 de VHF_CONFIG fornecida para 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 manutenção da operação. O tamanho do buffer é especificado pelo driver de origem HID na estrutura de VHF_CONFIG fornecida para 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.

Valor de retorno

Nenhum

Observações

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

Observação 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 no VHF (Virtual HID Framework) na chamada do driver para função VhfCreate depois de chamar WdfDeviceCreate. Por exemplo, para GetFeature, o driver deve implementar EvtVhfAsyncOperation e definir o membro EvtVhfAsyncOperationGetFeature do VHF_CONFIG para 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 o EvtVhfAsyncOperation função de retorno de chamada 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 OperationContextSize membro do VHF_CONFIG durante a inicialização, o VHF aloca um buffer desse tamanho e passa um ponteiro para esse buffer no parâmetro VhfOperationContext quando invoca EvtVhfAsyncOperation .

HidTransferPacket é o buffer de transferência para esta 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, as chamadas de origem HID VhfAsyncOperationComplete para relatar o status de conclusão.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Nenhum com suporte
da Plataforma de Destino Área de trabalho
cabeçalho vhf.h
IRQL <=DISPATCH_LEVEL

Consulte também

gravar um driver de origem HID usando o VHF (Virtual HID Framework)