IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

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

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

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

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

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 Puffers in Byte. Der Puffer muss groß genug sein, um den Featurebericht und 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 der HID_XFER_PACKET-Struktur .

Ausgabepuffer

Das Irp->MdlAddress Element verweist auf den vom Anforderer zugewiesenen Ausgabepuffer, den der HID-Klassentreiber verwendet, um den Featurebericht zurückzugeben. Das erste Byte des Puffers, das der Anforderer verwendet, um eine Berichts-ID oder null einzugeben, ist unverändert. Der Featurebericht mit Ausnahme seiner Berichts-ID wird unter ((PUCHAR)Irp->MdlAddress + 1)zurückgegeben, wenn Berichts-IDs verwendet werden.

Minidriver-Handhabung

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer verweist auf den vom Anforderer zugewiesenen Ausgabepuffer, den der HID-Minidriver verwendet, um einen Featurebericht zurückzugeben.

Länge des Ausgabepuffers

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

Minidriver-Handhabung

Die Größe der HID_XFER_PACKET-Struktur .

Statusblock

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

  • Informationen sind auf die Anzahl der vom Gerät übertragenen Bytes 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 vom Gerät übertragenen Bytes festgelegt.
  • 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 auf ihrem Gerät 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