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 디바이스를 만들기 위해 VhfCreate에 제공된 VHF_CONFIG 구조에 전달한 HID 원본 드라이버 정의 버퍼에 대한 불투명 포인터입니다.

[in] VhfOperationHandle

이 비동기 작업을 고유하게 식별하는 불투명 핸들입니다.

[in, optional] VhfOperationContext

작업을 서비스하기 위해 HID 원본 드라이버에서 사용할 수 있는 버퍼에 대한 포인터입니다. 버퍼의 크기는 VhfCreate에 제공된 VHF_CONFIG 구조의 HID 원본 드라이버에 의해 지정됩니다.

[in] HidTransferPacket

HID_XFER_PACKET 구조체에 대한 포인터입니다. HID 보고서에 대한 정보를 포함하며, HID 원본 드라이버 및 I/O 요청에 대한 HID 클래스/미니 드라이버 쌍에서 보고서를 얻거나 설정하는 데 사용됩니다.

반환 값

없음

설명

HID 원본 드라이버에서 지원할 수 있는 비동기 작업의 유형은 GetFeature, SetFeature, WriteReport, GetInputReport입니다.

참고 이러한 작업은 HID 전송 미니 드라이버가 구현하는 IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT IOCTL_HID_GET_INPUT_REPORT 요청과 유사합니다.
이러한 작업을 지원하려면 HID 원본 드라이버가 EvtVhfAsyncOperation 콜백 함수를 구현하고 WdfDeviceCreate를 호출한 후 드라이버가 VhfCreate 함수를 호출할 때 VHF(Virtual HID Framework)에 등록해야 합니다. 예를 들어 GetFeature의 경우 드라이버는 EvtVhfAsyncOperation을 구현하고 VHF_CONFIG EvtVhfAsyncOperationGetFeature 멤버를 구현된 함수의 함수 포인터로 설정해야 합니다.

VHF가 HID 보고서를 설정하거나 쿼리하는 요청을 받으면 VHF는 이전에 등록된 EvtVhfAsyncOperation 콜백 함수를 호출하고 비동기 작업이 시작됩니다. 각 작업은 VHF에 의해 설정된 VHFOPERATIONHANDLE 핸들로 식별됩니다. 드라이버가 초기화 중에 VHF_CONFIG OperationContextSize 멤버에 0이 아닌 값을 지정한 경우 VHF는 해당 크기의 버퍼를 할당하고 EvtVhfAsyncOperation을 호출할 때 VhfOperationContext 매개 변수의 해당 버퍼에 포인터를 전달합니다.

HidTransferPacket 은 HID 보고서별 세부 정보를 포함하는 VHF 할당 구조를 가리키는 이 작업의 전송 버퍼입니다. 예를 들어 작업이 GetFeature인 경우 완료 시 요청된 HID 기능 보고서를 사용하여 HID 원본 드라이버에 의해 버퍼가 채워집니다.

작업이 완료되면 HID 소스는 VhfAsyncOperationComplete 를 호출하여 완료 상태를 보고합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 데스크톱
헤더 vhf.h
IRQL <=DISPATCH_LEVEL

참고 항목

VHF(Virtual HID Framework)를 사용하여 HID 원본 드라이버 작성