Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IOCTL_HID_GET_INDEXED_STRING-Anforderung ruft eine angegebene eingebettete Zeichenfolge aus einer Auflistung auf oberster Ebeneab. Die abgerufene Zeichenfolge ist eine mit NULL beendete breite Zeichenfolge in einem lesbaren Format.
Allgemeine Informationen zu HIDClass-Geräten finden Sie unter HID Collections.
Hauptcode
Eingabepuffer
Parameters.DeviceIoControl.InputBufferLength in der I/O-Stapelposition des IRP gibt die Größe des Eingabepuffers an der Position an, auf die Irp->AssociatedIrp.SystemBufferverweist.
Parameters.DeviceIoControl.OutputBufferLength- an der I/O-Stapelposition des IRP gibt die Größe des Ausgabepuffers in Bytes an. Wenn der Ausgabepuffer nicht groß genug ist, um die gesamte eingebettete NULL-Zeichenfolge zu enthalten, gibt die Anforderung nichts im Ausgabepuffer zurück.
Minidriver-Verarbeitung: IOCTL_HID_GET_INDEXED_STRING verwendet zwei Eingabepuffer.
Parameters.DeviceIoControl.OutputBufferLength in der I/O-Stapelposition des IRP gibt die Größe des Ausgabepuffers an der Position an, auf die Irp->MdlAddressverweist. Wenn der Ausgabepuffer nicht groß genug ist, um die gesamte eingebettete NULL-Zeichenfolge zu enthalten, gibt die Anforderung nichts im Ausgabepuffer zurück. Die maximal mögliche Anzahl von Zeichen in einer eingebetteten Zeichenfolge ist gerätespezifisch. Bei USB-Geräten beträgt die maximale Zeichenfolgenlänge 126 breite Zeichen (nicht einschließlich des endenden NULL-Zeichens).
Parameters.DeviceIoControl.Type3InputBuffer enthält einen INT-Wert, der die abzurufende Zeichenfolge beschreibt. Die wichtigsten zwei Bytes des INT-Werts enthalten die Sprach-ID (z. B. ein Wert von 1033 gibt Englisch an). Die geringsten zwei Bytes des INT-Werts enthalten den Zeichenfolgenindex.
Eingabepufferlänge
Parameters.DeviceIoControl.InputBufferLength muss >= Sizeof(ULONG) sein und den Index der abzurufenden Zeichenfolge enthalten.
Für Parameters.DeviceIoControl.OutputBufferLengthist die maximal mögliche Anzahl von Zeichen in einer eingebetteten Zeichenfolge gerätespezifisch. Bei USB-Geräten beträgt die maximale Zeichenfolgenlänge 126 breite Zeichen (nicht einschließlich des endenden NULL-Zeichens).
Ausgabepuffer
Irp->MdlAddress verweist auf einen Puffer, um die abgerufene Zeichenfolge (eine NULL-beendete breite Zeichenfolge) zu empfangen.
minidriver handling: Irp->MdlAddress verweist auf einen Puffer, um die abgerufene Zeichenfolge (eine NULL-beendete breite Zeichenzeichenfolge) zu empfangen. Beachten Sie, dass im Gegensatz zu den meisten Gerätesteuerungs-IRPs für HID-Minidriver keine METHOD_NEITHER Pufferung verwendet. Insbesondere muss sie von IOCTL_HID_GET_STRING unterschieden werden, deren Ausgabepuffer durch Irp->UserBuffer-identifiziert wird.
Länge des Ausgabepuffers
Die Länge der abgerufenen Zeichenfolge (eine MIT NULL beendete breite Zeichenfolge). Der angegebene Puffer muss <= 4093 Bytes (2^12 – 3) sein.
Statusblock
Der HID-Klassentreiber legt die folgenden Felder von Irp->IoStatus-fest:
Information wird 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 entsprechenden NTSTATUS-Fehlercode festgelegt.
Anforderungen
| Anforderung | Wert |
|---|---|
| Header- | hidclass.h (include Hidclass.h) |