IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)

Die IOCTL_HID_SET_FEATURE-Anforderung sendet einen Featurebericht an eine Sammlung auf oberster Ebene.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Das Parameters.DeviceIoControl.InputBufferLength Element wird auf die Größe eines anforderungsbezogenen Eingabepuffers festgelegt, der einen HID-Klassenfeaturebericht enthält.

Die Größe des Eingabepuffers in Bytes. Der Puffer muss groß genug sein, um den Featurebericht sowie einen zusätzlichen Byte zu halten, der eine nichtzero-Berichts-ID angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.

Das Irp->AssociatedIrp.SystemBuffer Element verweist auf den Eingabepuffer, der einen Featurebericht enthält. Wenn die Auflistung Berichts-IDs enthält, muss der Anforderungsgeber den ersten Byte des Puffers auf eine nichtzero-Berichts-ID festlegen; andernfalls muss der Anforderungsgeber das erste Byte auf Null festlegen. Der Featurebericht befindet sich unter ((PUCHAR)ReportBuffer + 1).

Minidriver-Behandlung

Irp->UserBuffer verweist auf eine HID_XFER_PACKET Struktur, die der HID-Klassentreiber verwendet, um die folgenden Elemente 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 halten, das eine nichtzero-Berichts-ID angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.

Minidriver-Behandlung

Die Größe einer HID_XFER_PACKET Struktur.

Ausgabepuffer

Keiner.

Ausgabepufferlänge

Keiner.

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-Behandlung

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

  • Informationen werden auf die Anzahl der in das 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 diesem IOCTL aufrufen, um die I/O auszuführen, sollten sicherstellen, dass das Informationsfeld des Statusblocks richtig ist und nicht den Inhalt des Statusfelds ändert.

Anforderungen

   
Header hidclass.h (einschließlich Hidclass.h)

Weitere Informationen