EVT_VHF_ASYNC_OPERATION fungsi panggilan balik (vhf.h)

Driver sumber HID mengimplementasikan panggilan balik peristiwa ini jika ingin mendukung salah satu dari empat operasi asinkron untuk mendapatkan dan mengatur laporan HID.

Sintaks

EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;

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

Parameter

[in] VhfClientContext

Penunjuk buram ke buffer yang ditentukan driver sumber HID yang diteruskan driver dalam struktur VHF_CONFIG yang disediakan ke VhfCreate untuk membuat perangkat HID virtual.

[in] VhfOperationHandle

Handel buram yang secara unik mengidentifikasi operasi asinkron ini.

[in, optional] VhfOperationContext

Penunjuk ke buffer yang dapat digunakan oleh driver sumber HID untuk melayani operasi. Ukuran buffer ditentukan oleh driver sumber HID dalam struktur VHF_CONFIG yang disediakan untuk VhfCreate.

[in] HidTransferPacket

Penunjuk ke struktur HID_XFER_PACKET . Berisi informasi tentang Laporan HID dan digunakan oleh driver sumber HID dan pasangan driver kelas/mini HID untuk permintaan I/O untuk mendapatkan atau mengatur laporan.

Nilai kembali

Tidak ada

Keterangan

Ada empat jenis operasi asinkron yang dapat didukung driver sumber HID Anda: GetFeature, SetFeature, WriteReport, GetInputReport.

Catatan Operasi tersebut dianalogikan dengan permintaan IOCTL_HID_GET_FEATURE, IOCTL_HID_SET_FEATURE, IOCTL_HID_WRITE_REPORT, IOCTL_HID_GET_INPUT_REPORT yang diterapkan minidriver transportasi HID.
 
Untuk mendukung operasi seperti itu, driver sumber HID harus menerapkan fungsi panggilan balik EvtVhfAsyncOperation dan mendaftarkannya dengan Virtual HID Framework (VHF) dalam panggilan driver ke fungsi VhfCreate setelah memanggil WdfDeviceCreate. Misalnya, untuk GetFeature, driver harus mengimplementasikan EvtVhfAsyncOperation dan mengatur anggota EvtVhfAsyncOperationGetFeature dari VHF_CONFIG ke penunjuk fungsi fungsi yang diimplementasikan.

Ketika VHF mendapatkan permintaan yang menetapkan atau mengkueri Laporan HID, VHF memanggil fungsi panggilan balik EvtVhfAsyncOperation yang terdaftar sebelumnya dan operasi asinkron dimulai. Setiap operasi diidentifikasi oleh handel VHFOPERATIONHANDLE yang ditetapkan oleh VHF. Jika driver menentukan nilai bukan nol dalam anggota OperationContextSizedari VHF_CONFIG selama inisialisasi, VHF mengalokasikan buffer ukuran tersebut dan meneruskan penunjuk ke buffer tersebut di parameter VhfOperationContext saat memanggil EvtVhfAsyncOperation.

HidTransferPacket adalah buffer transfer untuk operasi ini yang menunjuk ke struktur yang dialokasikan VHF yang berisi detail khusus Laporan HID. Misalnya, jika operasinya adalah GetFeature, setelah selesai, buffer diisi oleh driver sumber HID dengan Laporan Fitur HID yang diminta.

Ketika operasi selesai, sumber HID memanggil VhfAsyncOperationComplete untuk melaporkan status penyelesaian.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Tidak ada yang didukung
Target Platform Desktop
Header vhf.h
IRQL <=DISPATCH_LEVEL

Lihat juga

Menulis driver sumber HID dengan menggunakan Virtual HID Framework (VHF)