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());
}