IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)
Die IOCTL_HID_SET_FEATURE-Anforderung sendet einen Featurebericht an eine Sammlung der obersten Ebene.
Allgemeine Informationen zu HIDClass-Geräten finden Sie unter HID-Sammlungen.
Hauptcode
Eingabepuffer
Der Parameters.DeviceIoControl.InputBufferLength
Member wird auf die Größe eines vom Anforderer zugeordneten Eingabepuffers in Bytes festgelegt, der einen HID-Klassenfeaturebericht enthält.
Die Größe des Eingabepuffers in Byte. Der Puffer muss groß genug sein, um den Featurebericht sowie ein zusätzliches Byte zu enthalten, das eine Berichts-ID ungleich null angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.
Der Irp->AssociatedIrp.SystemBuffer
Member zeigt auf den Eingabepuffer, der einen Featurebericht enthält. Wenn die Sammlung Berichts-IDs enthält, muss der Anforderer das erste Byte des Puffers auf eine Berichts-ID ungleich null festlegen. Andernfalls muss der Anforderer das erste Byte auf 0 (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 Member einzugeben:
Länge des Eingabepuffers
Die Größe des Eingabepuffers in Byte. Der Puffer muss groß genug sein, um den Ausgabebericht sowie ein zusätzliches Byte zu enthalten, das eine Berichts-ID ungleich Null angibt. Wenn die Berichts-ID nicht verwendet wird, ist der ID-Wert null.
Minidriver-Behandlung
Die Größe einer HID_XFER_PACKET-Struktur .
Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
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 entsprechenden 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:
- Die Informationen sind auf die Anzahl der Bytes festgelegt, die an das Gerät übertragen werden.
- 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 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) |