функция обратного вызова EVT_VHF_ASYNC_OPERATION (vhf.h)

Драйвер источника HID реализует этот обратный вызов события, если он хочет поддерживать одну из четырех асинхронных операций для получения и задания отчетов HID.

Синтаксис

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

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

Параметры

[in] VhfClientContext

Непрозрачный указатель на буфер, определенный драйвером источника HID, который драйвер передал в структуре VHF_CONFIG, предоставленной VhfCreate для создания виртуального устройства HID.

[in] VhfOperationHandle

Непрозрачный дескриптор, который однозначно идентифицирует эту асинхронную операцию.

[in, optional] VhfOperationContext

Указатель на буфер, который может использоваться драйвером источника HID для обслуживания операции. Размер буфера задается драйвером источника HID в структуре VHF_CONFIG, предоставленной VhfCreate.

[in] HidTransferPacket

Указатель на структуру HID_XFER_PACKET. Содержит сведения о отчете HID и используется драйвером источника HID и парой HID/мини-драйверов для получения или задания отчета.

Возвращаемое значение

Никакой

Замечания

Существует четыре типа асинхронных операций, поддерживаемых драйвером источника HID: GetFeature, SetFeature, WriteReport, GetInputReport.

Примечание Эти операции аналогичны IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT запросам, которые реализует мини-driver транспорта HID.
 
Для поддержки такой операции драйвер источника HID должен реализовать функцию обратного вызова EvtVhfAsyncOperation обратного вызова и зарегистрировать ее в вызове Virtual HID Framework (VHF) в вызове драйвера функцию VhfCreate после вызова WdfDeviceCreate. Например, для GetFeatureдрайвер должен реализовать EvtVhfAsyncOperation и задать EvtVhfAsyncOperationGetFeatureVHF_CONFIG в указатель функции реализованной функции.

Когда VHF получает запрос, который задает или запрашивает отчет HID, VHF вызывает ранее зарегистрированную EvtVhfAsyncOperation функцию обратного вызова и асинхронную операцию. Каждая операция определяется дескриптором VHFOPERATIONHANDLE, заданным VHF. Если драйвер указал ненулевое значение в элементе OperationContextSize элемента VHF_CONFIG во время инициализации, VHF выделяет буфер этого размера и передает указатель на этот буфер в параметре VhfOperationContext при вызове EvtVhfAsyncOperation.

HidTransferPacket — это буфер передачи для этой операции, указывающий на выделенную VHF структуру, содержащую сведения о отчете HID. Например, если операция GetFeature, после завершения буфер заполняется драйвером источника HID с запрошенным отчетом о функциях HID.

По завершении операции вызовы источника HID VhfAsyncOperationComplete, чтобы сообщить о состоянии завершения.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Не поддерживается
целевая платформа Настольный
заголовка vhf.h
IRQL <=DISPATCH_LEVEL

См. также

Написание исходного драйвера HID с помощью Virtual HID Framework (VHF)