IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

Die IOCTL_HID_GET_INPUT_REPORT-Anforderung ruft einen Eingabebericht aus einer Sammlung auf oberster Ebene ab.

Allgemeine Informationen zu HIDClass-Geräten finden Sie unter HID-Sammlungen.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Das Parameters.DeviceIoControl.OutputBufferLength Element gibt die Größe eines anforderungsbezogenen Ausgabepuffers in Bytes an. Der HID-Klassentreiber verwendet diesen Puffer, um einen Eingabebericht zurückzugeben.

Wenn die Auflistung Berichts-IDs enthält, muss der Anforderungser das erste Byte des Ausgabepuffers auf eine Nichtzero-Berichts-ID festlegen. Andernfalls muss der Anforderungser das erste Byte des Ausgabepuffers auf Null festlegen.

Minidriver-Handhabung

Irp->UserBuffer verweist auf eine HID_XFER_PACKET Struktur, die der HID-Klassentreiber verwendet, um die folgenden Member einzugeben:

Länge des Eingabepuffers

Die Größe des Puffers in Byte. Der Puffer muss groß genug sein, um den Eingabebericht sowie ein zusätzliches Byte zu halten, das eine nichtzero-Berichts-ID angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.

Ausgabepuffer

Das Irp->MdlAddress Element verweist auf den angeforderten Ausgabepuffer, den der HID-Klassentreiber zum Zurückgeben des Eingabeberichts verwendet. Das erste Byte des Puffers, das der Antragsteller zum Eingeben einer Berichts-ID oder Null verwendet, ist unverändert. Der Eingabebericht wird an ((PUCHAR)Irp->MdlAddress + 1).

Minidriver-Handhabung

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer verweist auf den angeforderten Ausgabepuffer, den der HID-Minidriver zum Zurückgeben des Eingabeberichts verwendet.

Ausgabepufferlänge

Die Größe des Ausgabeberichts.

Statusblock

Der HID-Klassentreiber legt die folgenden Felder von Irp->IoStatus:

  • Informationen werden auf Null festgelegt.
  • Der Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird er auf einen entsprechenden NTSTATUS-Fehlercode festgelegt.

Minidriver-Handhabung

HID-Minidriver, die die I/O an das Gerät ausführen, legen die folgenden Felder fest Irp->IoStatus:

  • Informationen werden auf die Anzahl der vom Gerät übertragenen Bytes festgelegt.
  • Der Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird er auf einen entsprechenden NTSTATUS-Fehlercode festgelegt.

HID-Minidriver, die andere Treiber mit dieser IOCTL aufrufen, um die I/O auf ihrem Gerät auszuführen, sollten sicherstellen, dass das Informationsfeld des Statusblocks korrekt ist und nicht den Inhalt des Statusfelds ändert.

Anforderungen

   
Header hidclass.h (include Hidclass.h)

Siehe auch