Bagikan melalui


IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

Permintaan IOCTL_HID_GET_INPUT_REPORT mendapatkan laporan input dari koleksi tingkat atas.

Untuk informasi umum tentang perangkat HIDClass, lihat Koleksi HID.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Anggota Parameters.DeviceIoControl.OutputBufferLength menentukan ukuran buffer output yang dialokasikan pemohon dalam byte. Driver kelas HID menggunakan buffer ini untuk mengembalikan laporan input.

Jika koleksi menyertakan ID laporan, pemohon harus mengatur byte pertama dari buffer output ke ID laporan bukan nol. Jika tidak, pemohon harus mengatur byte pertama dari buffer output ke nol.

Penanganan minidriver

Irp->UserBuffer menunjuk ke struktur HID_XFER_PACKET yang digunakan driver kelas HID untuk memasukkan anggota berikut:

Panjang buffer input

Ukuran buffer dalam byte. Buffer harus cukup besar untuk menyimpan laporan input ditambah satu byte tambahan yang menentukan ID laporan bukan nol. Jika ID laporan tidak digunakan, nilai ID adalah nol.

Buffer output

Anggota Irp->MdlAddress menunjuk ke buffer output yang dialokasikan pemohon yang digunakan driver kelas HID untuk mengembalikan laporan input. Byte pertama buffer, yang digunakan pemohon untuk memasukkan ID laporan atau nol, tidak berubah. Laporan input dikembalikan di ((PUCHAR)Irp->MdlAddress + 1).

Penanganan minidriver

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer menunjuk ke buffer output yang dialokasikan pemohon yang digunakan minidriver HID untuk mengembalikan laporan input.

Panjang buffer output

Ukuran laporan output.

Blok status

Driver kelas HID mengatur bidang berikut dari Irp->IoStatus:

  • Informasi diatur ke nol.
  • Status diatur ke STATUS_SUCCESS jika transfer selesai tanpa kesalahan. Jika tidak, kode ini diatur ke kode kesalahan NTSTATUS yang sesuai.

Penanganan minidriver

Minidriver HID yang melakukan I/O ke perangkat mengatur bidang berikut dari Irp->IoStatus:

  • Informasi diatur ke jumlah byte yang ditransfer dari perangkat.
  • Status diatur ke STATUS_SUCCESS jika transfer selesai tanpa kesalahan. Jika tidak, kode ini diatur ke kode kesalahan NTSTATUS yang sesuai.

Minidriver HID yang memanggil driver lain dengan IOCTL ini untuk melakukan I/O ke perangkat mereka, harus memastikan bahwa bidang Informasi blok status sudah benar dan tidak mengubah konten bidang Status .

Persyaratan

Persyaratan Nilai
Header hidclass.h (termasuk Hidclass.h)

Lihat juga