c++ - 如何使用 libusb 获取驱动器名称?
问题描述
如何使用 libusb 获取驱动器名称?我使用 Windows 和下一个代码:
#define VID 0x4444
#define PID 0x0001
#define PID_FILE 0x1000
//..
libusb_device **devs;
uint8_t i = 0;
uint8_t path[9];
std::string devices;
libusb_init(&ctx);
libusb_get_device_list(ctx, &devs);
while ((dev = devs[i++]) != NULL)
{
struct libusb_device_descriptor desc;
uint8_t r = libusb_get_device_descriptor(dev, &desc);
r = libusb_get_port_numbers(dev, path, SIZE_PATH);
if (desc.idVendor == VID && (desc.idProduct == PID || desc.idProduct == PID_FILE))
{
printf("%04x:%04x (bus %d, device %d)\n",
desc.idVendor, desc.idProduct,
libusb_get_bus_number(dev), libusb_get_device_address(dev));
path[8] = libusb_get_port_numbers(dev, path, SIZE_PATH);
path[path[8]] = libusb_get_bus_number(dev);
for (uint8_t g = 0; g < 9; g++) {
devices += format("X%x", path[g]);
}
devices += ",";
}
}
在这段代码中,我得到了 USB 路径(我使用闪存驱动器)。如何获取驱动器名称,例如 E:\?
解决方案
办公文档中的文本片段
本项目将 Windows 平台支持添加到 libusb 开源库中,以帮助开发人员轻松与 Windows 上的 USB 设备进行通信。目前它支持用于通用 USB 设备访问的 WinUSB 和 HID 驱动程序以及 libusb-win32 和 libusbK 驱动程序。
请注意 libusb-win32 和 libusbK 是独立的项目。libusb-win32 是一个仅限 Windows 的项目,它为 Windows 和内核驱动程序 libusb0.sys 提供 libusb-0.1 API 兼容库。libusbK 是一个仅限 Windows 的项目,它为 Windows 和内核驱动程序 libusbK.sys 提供了一组新的 API。
推荐阅读
- java - 我想跳过循环 java 中的每个第三个字符串元素?
- linux - Cat 文件第 14 行的最后 X 个字符
- flutter - 如何在 Flutter 中使用 Chopper 添加多个 baseUrl?
- python - 无法返回静态文件 [404] 在 Docker (Ubuntu) 容器中运行的 Flask 应用程序
- python - 访问数据框 pandas 中的列表
- bash - 包含空格的 IFS 分隔符?
- php - 根据链接表字段检索给定的选择
- python - Numpy 错误:无法转换 numpy.object_ 类型的 np.ndarray
- java - 如何在java中更改屏幕状态?
- format - AnyChart 图例图标位置