IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)
Die IOCTL_HID_GET_INPUT_REPORT-Anforderung ruft einen Eingabebericht aus einer Sammlung der obersten Ebene ab.
Allgemeine Informationen zu HIDClass-Geräten finden Sie unter HID-Sammlungen.
Hauptcode
Eingabepuffer
Der Parameters.DeviceIoControl.OutputBufferLength
Member gibt die Größe eines vom Anforderer zugeordneten Ausgabepuffers in Byte an. Der HID-Klassentreiber verwendet diesen Puffer, um einen Eingabebericht zurückzugeben.
Wenn die Auflistung Berichts-IDs enthält, muss der Anforderer das erste Byte des Ausgabepuffers auf eine Berichts-ID ungleich null festlegen. Andernfalls muss der Anforderer 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 Member einzugeben:
Länge des Eingabepuffers
Die Größe des Puffers in Byte. Der Puffer muss groß genug sein, um den Eingabebericht zu enthalten, sowie ein zusätzliches Byte, das eine Berichts-ID ungleich null angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.
Ausgabepuffer
Der Irp->MdlAddress
Member verweist auf den vom Anforderer zugeordneten Ausgabepuffer, den der HID-Klassentreiber verwendet, um den Eingabebericht zurückzugeben. Das erste Byte des Puffers, das der Anforderer zum Eingeben einer Berichts-ID oder 0 verwendet, ist unverändert. Der Eingabebericht wird unter ((PUCHAR)Irp->MdlAddress + 1)
zurückgegeben.
Minidriver-Behandlung
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
verweist auf den vom Anforderer zugeordneten Ausgabepuffer, den der HID-Minitreiber verwendet, um den Eingabebericht zurückzugeben.
Länge des Ausgabepuffers
Die Größe des Ausgabeberichts.
Statusblock
Der HID-Klassentreiber legt die folgenden Felder von fest Irp->IoStatus
:
- Die Informationen sind auf 0 (null) festgelegt.
- Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird er auf einen geeigneten NTSTATUS-Fehlercode festgelegt.
Minidriver-Behandlung
HID-Minitreiber, die die E/A an das Gerät ausführen, legen die folgenden Felder von Irp->IoStatus
fest:
- Informationen werden auf die Anzahl der vom Gerät übertragenen Bytes festgelegt.
- Status wird auf STATUS_SUCCESS festgelegt, wenn die Übertragung ohne Fehler abgeschlossen wurde. Andernfalls wird er auf einen geeigneten 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 korrekt ist, und den Inhalt des Felds Status nicht ändern.
Anforderungen
Anforderung | Wert |
---|---|
Header | hidclass.h (include Hidclass.h) |