![](https://csdnimg.cn/release/download_crawler_static/5078758/bg6.jpg)
356
357 struct usb_host_config *actconfig;//设备正在使用的配置
358 struct usb_host_endpoint *ep_in[16];//ep_in[16],359 行,ep_out[16],除了端点 0,一个设备即使在
高速模式下也最多只能再有 15 个 IN 端点和 15 个 OUT 端点,端点 0 太特殊了,
359 struct usb_host_endpoint *ep_out[16];//对应的管道是 Message 管道,又能进又能出特能屈能伸的那
种,所以这里的 ep_in 和 ep_out 数组都有 16 个值
360
361 char **rawdescriptors; /* Raw descriptors for each config */
362
363 unsigned short bus_mA; /* Current available from the bus */这个值是在 host controller 的驱动程
序中设置的,通常来讲,计算机的 usb 端口可以提供 500mA 的电流
364 u8 portnum; //不管是 root hub 还是一般的 hub,你的 USB 设备总归要插在一个 hub 的
端口上才能用,portnum 就是那个端口号。
365 u8 level; //层次,也可以说是级别,表征 usb 设备树的级连关系。Root Hub 的 level
当然就是 0,其下面一层就是 level 1,再下面一层就是 level 2,依此类推
366
367 unsigned discon_suspended:1; /* Disconnected while suspended */
368 unsigned have_langid:1; /* whether string_langid is valid */
369 int string_langid; /* language ID for strings */
370
371 /* static strings from the device */
372 char *product; /* iProduct string, if present */
373 char *manufacturer; /* iManufacturer string, if present */
374 char *serial; /* iSerialNumber string, if present */
375 //分别用来保存产品、厂商和序列号对应的字符串描述符信息
376 struct list_head filelist;
377 #ifdef CONFIG_USB_DEVICE_CLASS
378 struct device *usb_classdev;
379 #endif
380 #ifdef CONFIG_USB_DEVICEFS