USBD_GET_DESCRIPTORS
用途
获取逻辑设备的标准通用串行总线 (USB) 描述符。
语法
int ioctl (file, USBD_GET_DESCRIPTORS, arg)
参数
| 项 | 描述 |
|---|---|
| 文件 | 在 USB 系统驱动程序 (USBD) 特殊文件打开时获取的文件描述符。 |
| arg | 在 4 字节边界上对齐的 USBDGD 结构的地址。 |
描述
从 ioctl 操作成功返回后, DESCIDX 结构将放置在指定缓冲区的开头,后跟标准设备描述符,配置描述符,接口描述符,端点描述符,人员接口设备 (HID) 描述符 (如果使用了 HID 设备) ,集线器描述符 (如果使用了集线器设备) 和指定逻辑 USB 设备的字符串描述符。 DESCIDX 结构提供单个描述符的直接可寻址性。 为了便于使用,字符串描述符被重新编码为以 null 结束的美国信息交换标准代码 (ASCII) 字符串。 所有其他描述符都遵循标准 USB 格式。 由于返回的数据的大小通常未知,因此必须调用两次 ioctl 操作。 首次调用 ioctl 操作时,请将 bufferLength 字段设置为等于零,并将缓冲区字段设置为空。 ioctl 操作可能会因 ENOSPC 错误而失败,但是将返回指示所需缓冲区大小的 minBuffLength 值。 然后,调用者可以分配缓冲区,并在 bufferLength 字段设置为正确值的情况下再次调用 ioctl 操作。
执行环境
此函数只能从用户进程环境中调用。
返回值
| 值 | 描述 |
|---|---|
| 0 | 成功。 |
| -1 | 软件错误。 检查 errno 值以了解特定故障原因。 |