2011-08-25 13 views
5

¿Existe una documentación oficial que detalle la longitud máxima del descriptor de cadena que representa el fabricante (o nombre del producto, nombre del modelo, nombre del dispositivo, etiqueta o número de serie) de un dispositivo USB?¿Cuánto tiempo dura la cadena de fabricante de un dispositivo USB?

+0

Tal vez esto podría ayudarle a: http://www.beyondlogic.org/usbnutshell/usb5.shtml#DeviceDescriptors – Quasdunk

+0

que sé de los descriptores USB, pero cuando llamo usb_get_string_simple() por libusb, por ejemplo, obtiene la cadena (iProduct, iSerialNumber, etc ...) y devuelve el tamaño de lectura. Pero no hay un tamaño máximo que pueda leer. – Gianfranco

+0

No he encontrado ninguna documentación sobre la longitud máxima, pero como utilizo la biblioteca libmtp-1.1.0, encontré PTP_MAXSTRLEN = 255. – Gianfranco

Respuesta

14

Cualquier descriptor USB está limitado a 255 bytes ya que el campo bLength principal tiene un ancho de un byte. El segundo byte lo toma el bDescriptorType. Porque todos * usan codificación de cadena UTF-16-LE, eso deja un máximo de 126 caracteres.

*) Por mandato del USB 2.0 Unicode ECN en 2005 http://en.wikipedia.org/wiki/USB

+0

Gracias por pensar en el límite de 256 bytes; me has ahorrado mucho trabajo. –

Cuestiones relacionadas