Freigeben über


IOCTL_HID_GET_INDEXED_STRING IOCTL (hidclass.h)

Die IOCTL_HID_GET_INDEXED_STRING Anforderung ruft eine angegebene eingebettete Zeichenfolge aus einer Auflistung der obersten Ebene ab. Die abgerufene Zeichenfolge ist eine MIT NULL beendete breite Zeichenfolge in einem lesbaren Format.

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Parameters.DeviceIoControl.InputBufferLength in der E/A-Stapelposition des IRP gibt die Größe des Eingabepuffers in Bytes an der Position an, auf die von Irp-AssociatedIrp.SystemBuffer> verwiesen wird.

Parameters.DeviceIoControl.OutputBufferLength in der E/A-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 aufzunehmen, gibt die Anforderung nichts im Ausgabepuffer zurück.

Minidriver-Behandlung: IOCTL_HID_GET_INDEXED_STRING verwendet zwei Eingabepuffer.

Parameters.DeviceIoControl.OutputBufferLength in der E/A-Stapelposition des IRP gibt die Größe des Ausgabepuffers in Bytes an der Position an, auf die von Irp-MdlAddress> verwiesen wird. Wenn der Ausgabepuffer nicht groß genug ist, um die gesamte eingebettete NULL-Zeichenfolge aufzunehmen, gibt die Anforderung nichts im Ausgabepuffer zurück. Die maximal mögliche Anzahl von Zeichen in einer eingebetteten Zeichenfolge ist gerätespezifisch. Für USB-Geräte beträgt die maximale Zeichenfolgenlänge 126 breite Zeichen (ohne das beendende NULL-Zeichen).

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 sollte den Index der abzurufenden Zeichenfolge enthalten.

Für Parameters.DeviceIoControl.OutputBufferLength ist die maximal mögliche Anzahl von Zeichen in einer eingebetteten Zeichenfolge gerätespezifisch. Für USB-Geräte beträgt die maximale Zeichenfolgenlänge 126 breite Zeichen (ohne das beendende NULL-Zeichen).

Ausgabepuffer

Irp->MdlAddress verweist auf einen Puffer, um die abgerufene Zeichenfolge (eine mit NULL beendete breite Zeichenfolge) zu empfangen.

Minidriver-Behandlung: Irp-MdlAddress> verweist auf einen Puffer, um die abgerufene Zeichenfolge (eine mit NULL beendete breite Zeichenfolge) zu empfangen. Beachten Sie, dass dieser IRP im Gegensatz zu den meisten GERÄTEsteuerungs-IRPs für HID-Minidriver nicht METHOD_NEITHER Puffer verwendet. Es muss insbesondere 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 bereitgestellte Puffer muss = 4093 Bytes (2^12 – 3) sein <.

Statusblock

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

  • 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.

Anforderungen

Anforderung Wert
Header hidclass.h (include Hidclass.h)

Weitere Informationen

HidD_GetIndexedString

HidD_GetManufacturerString

HidD_GetPhysicalDescriptor

HidD_GetProductString

HidD_GetSerialNumberString

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING