Freigeben über


IOCTL_HID_SET_OUTPUT_REPORT IOCTL (hidclass.h)

Die IOCTL_HID_SET_OUTPUT_REPORT-Anforderung sendet einen Ausgabebericht an eine Sammlung auf oberster Ebene.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Der Parameters.DeviceIoControl.InputBufferLength Member wird auf die Größe eines vom Antragsteller zugewiesenen Eingabepuffers in Byte festgelegt, der einen HID-Klassenausgabebericht enthält.

Die Größe des Eingabepuffers in Byte. Der Puffer muss groß genug sein, um den Ausgabebericht und ein zusätzliches Byte zu enthalten, das eine Nichtzero-Berichts-ID angibt. Wenn keine Berichts-ID verwendet wird, ist der ID-Wert null.

Der Irp->AssociatedIrp.SystemBuffer Member verweist auf den Eingabepuffer, der einen Ausgabebericht enthält. Wenn die Auflistung Berichts-IDs enthält, muss der Anforderer das erste Byte des Puffers auf eine Nichtzero-Berichts-ID festlegen. Andernfalls muss der Antragsteller das erste Byte auf Null festlegen. Der Ausgabebericht befindet sich in ((PUCHAR)ReportBuffer + 1).

minidriver handling

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 Byte. Der Puffer muss groß genug sein, um den Ausgabebericht und ein zusätzliches Byte zu enthalten, das eine Nichtzero-Berichts-ID angibt. Wenn keine Berichts-ID verwendet wird, ist der ID-Wert null.

minidriver handling

Die Größe einer HID_XFER_PACKET Struktur.

Ausgabepuffer

Nichts.

Länge des Ausgabepuffers

Nichts.

Statusblock

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

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

minidriver handling

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

  • Information wird auf die Anzahl der Bytes festgelegt, die auf das Gerät übertragen werden.
  • 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 E/A auszuführen, sollten sicherstellen, dass das Information Feld des Statusblocks korrekt ist und den Inhalt des felds Status nicht ändern.

Anforderungen

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

Siehe auch