IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

Die IOCTL_HID_GET_INPUT_REPORT-Anforderung ruft einen Eingabebericht aus einer Sammlung der obersten Ebene ab.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Der Parameters.DeviceIoControl.OutputBufferLength Member gibt die Größe eines vom Anforderer zugeordneten Ausgabepuffers in Byte an. Der HID-Klassentreiber verwendet diesen Puffer, um einen Eingabebericht zurückzugeben.

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

Minidriver-Behandlung

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 zu enthalten, sowie ein zusätzliches Byte, das eine Berichts-ID ungleich null angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.

Ausgabepuffer

Der Irp->MdlAddress Member verweist auf den vom Anforderer zugeordneten Ausgabepuffer, den der HID-Klassentreiber verwendet, um den Eingabebericht zurückzugeben. Das erste Byte des Puffers, das der Anforderer zum Eingeben einer Berichts-ID oder 0 verwendet, ist unverändert. Der Eingabebericht wird unter ((PUCHAR)Irp->MdlAddress + 1)zurückgegeben.

Minidriver-Behandlung

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer verweist auf den vom Anforderer zugeordneten Ausgabepuffer, den der HID-Minitreiber verwendet, um den Eingabebericht zurückzugeben.

Länge des Ausgabepuffers

Die Größe des Ausgabeberichts.

Statusblock

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

  • Die Informationen sind auf 0 (null) festgelegt.
  • Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird er auf einen geeigneten NTSTATUS-Fehlercode festgelegt.

Minidriver-Behandlung

HID-Minitreiber, die die E/A an das Gerät ausführen, legen die folgenden Felder von Irp->IoStatusfest:

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

HID-Minitreiber, die andere Treiber mit dieser IOCTL aufrufen, um die E/A auf ihrem Gerät auszuführen, sollten sicherstellen, dass das Feld Information des status Blocks korrekt ist, und den Inhalt des Felds Status nicht ändern.

Anforderungen

Anforderung Wert
Header hidclass.h (include Hidclass.h)

Weitere Informationen