IOCTL_HID_SET_OUTPUT_REPORT IOCTL (hidclass.h)

Die IOCTL_HID_SET_OUTPUT_REPORT-Anforderung sendet einen Ausgabebericht an eine Sammlung der obersten Ebene.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Das Parameters.DeviceIoControl.InputBufferLength Element wird auf die Größe eines vom Anforderer zugewiesenen Eingabepuffers in Bytes festgelegt, der einen Ausgabebericht der HID-Klasse enthält.

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

Das Irp->AssociatedIrp.SystemBuffer Element zeigt auf den Eingabepuffer, der einen Ausgabebericht enthält. Wenn die Sammlung Berichts-IDs enthält, muss der Anforderer das erste Byte des Puffers auf eine nichtzero-Berichts-ID festlegen. Andernfalls muss der Anforderer das erste Byte auf 0 (Null) festlegen. Der Ausgabebericht befindet sich unter ((PUCHAR)ReportBuffer + 1).

Minidriver-Handhabung

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

Eingabepufferlänge

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

Minidriver-Handhabung

Die Größe einer HID_XFER_PACKET-Struktur .

Ausgabepuffer

Keine.

Länge des Ausgabepuffers

Keine.

Statusblock

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

  • Die Informationen sind auf Null festgelegt.
  • Der Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird ein entsprechender NTSTATUS-Fehlercode festgelegt.

Minidriver-Handhabung

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

  • Informationen sind auf die Anzahl der Bytes festgelegt, die an das Gerät übertragen werden.
  • Der Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird ein entsprechender NTSTATUS-Fehlercode festgelegt.

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

Anforderungen

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

Weitere Informationen