usb 类包含多个子类,这些子类提供了对接口、描述符和
USB 设备的端点和端点。包含的子类包括:
USB 描述符会报告设备的所有属性。端点是一种特定类型的描述符 ,它描述了主机与设备之间通信流的终点。
InterfaceList 类会迭代 USB 设备中的每个 Interface。
然后,每个 Interface 包含:
- DescriptorList至- GetDescriptorList()
- EndpointList至- GetEndpointList()
这些方法允许访问接口的所有描述符和端点。
这些子类的层次结构如图 1 所示。

图 1
示例
从 USB 接收描述符
这些示例遍历 USB 设备中的所有描述符。该示例遍历所有 然后迭代每个接口中的所有描述符。
基于范围的 for 循环
std::optional<InterfaceList> interface_list;
status = InterfaceList::Create(my_client, true, &interface_list);
if (status != ZX_OK) {
    ...
}
for (auto& interface : *interface_list) {
    for (auto& descriptor : interface.GetDescriptorList()) {
        ...
    }
}
手动 for 循环
std::optional<InterfaceList> interface_list;
status = InterfaceList::Create(my_client, true, &interface_list);
if (status != ZX_OK) {
    ...
}
for (auto& interface : *interface_list) {
    auto dList_itr = interface.GetDescriptorList().begin(); // or cbegin().
    do {
        ...
    } while (++dList_itr != interface.GetDescriptorList().end());
}