функция обратного вызова 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/мини-драйверов для запросов ввода-вывода для получения или настройки отчета.

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

None

Remarks

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

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

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Персональный компьютер
Верхняя часть vhf.h
IRQL <=DISPATCH_LEVEL

См. также раздел

Создание исходного драйвера HID с помощью Виртуальной платформы HID (VHF)