我有一个使用 CreateFile() API 读取/写入 USB 设备的库。该设备恰好实现了 HID 设备配置文件,因此它与 Microsoft 的 HID 类驱动程序兼容。
系统上安装的其他一些应用程序正在以读/写模式打开设备,而没有共享模式。这会阻止我的库(以及使用它的任何内容)使用该设备。我想这就是 HID 兼容设备的问题所在——其他驱动程序软件(鼠标、控制器、PHIDGETS 等)可能不合作。
无论如何,设备文件路径的形式为:
1: "\\?\hid#hpqremhiddevice&col01;#5&21ff20e7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".
2: "\\?\hid#vid_045e&pid;_0023#7&34aa9ece&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".
3: "\?\hid#vid_056a&pid;_00b0&col01;#6&5b05f29&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".
我正在尝试使用代码打开它,例如:
// First, open it with minimum permissions, this device may not be ours.
// we'll re-open it later in read/write
hid_device_ref = CreateFile(
device_path, GENERIC_READ,
0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
我考虑过使用 SysInternals 的 FileMon 或 Process Monitor 等工具。但我似乎无法让它报告设备文件句柄的使用情况,如上面列出的那样。
您是否尝试过名为的工具handle来自系统内部?
无论如何,Windows 都不会这样做(显示锁定设备的应用程序的名称):当您尝试弹出 USB 设备时,Windows 只是说该设备当前正在使用,现在无法删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)