IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

Die IOCTL_HID_GET_FEATURE Anforderung gibt einen Featurebericht zurück, der einer Auflistung auf oberster Ebene zugeordnet ist.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

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

Wenn die Auflistung Berichts-IDs enthält, muss der Anforderungsgeber das erste Byte des Ausgabepuffers auf eine nichtzero-Berichts-ID festlegen. Andernfalls muss der Anforderungsgeber 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 Elemente einzugeben:

Eingabepufferlänge

Die Größe des Puffers in Byte. 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.

Minidriver-Behandlung

Die Größe der HID_XFER_PACKET Struktur.

Ausgabepuffer

Das Irp->MdlAddress Element verweist auf den anforderungsbezogenen Ausgabepuffer, den der HID-Klassentreiber zum Zurückgeben des Featureberichts verwendet. Der erste Byte des Puffers, den der Anforderung zum Eingeben einer Berichts-ID oder null verwendet, ist unverändert. Der Featurebericht, ohne seine Berichts-ID, wenn Berichts-IDs verwendet werden, wird an ((PUCHAR)Irp->MdlAddress + 1)zurückgegeben.

Minidriver-Behandlung

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer zeigt auf den vom Anforderungsgeber zugewiesenen Ausgabepuffer, den der HID-Minidriver zum Zurückgeben eines Featureberichts verwendet.

Ausgabepufferlänge

Die Länge des Puffers, der den Bericht enthält.

Minidriver-Behandlung

Die Größe der HID_XFER_PACKET Struktur.

Statusblock

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

  • Informationen werden auf die Anzahl der von dem 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.

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 von dem 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 auf ihr Gerät auszuführen, sollten sicherstellen, dass das Informationsfeld des Statusblocks korrekt ist und nicht den Inhalt des Statusfelds ändert.

Requirements (Anforderungen)

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

Weitere Informationen