我正在尝试使用供应商提供的软件包访问物理设备。
在早期版本的软件包中,他们让用户通过 DOS 符号名称打开设备:
hDevice= CreateFile("\\\\.\\DevName",
GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_ExiSTING, 0, NULL);
但是,他们发布了一个新版本,要求通过 GUID 打开设备,并且在他们的 header 中包含一个 DEFINE_GUID
。此更新还禁用了打开设备的旧方法。
他们没有更新他们的文档来展示如何通过 GUID 打开设备,我也没有找到任何对我的 google-fu 有帮助的东西。
肯定在某处有一个示例显示如何使用 GUID 打开设备?
最佳答案
供应商很可能给了您一个“设备接口(interface) GUID”。
要获得可用于 CreateFile()
的名称,您必须枚举具有该 GUID 的所有设备。这是通过使用标志 DIGCF_DEVICEINTERFACE
调用 SetupDiGetClassDevs()
来完成的。结果列表由设备信息集 (HDEVINFO) 的句柄表示。然后将该句柄输入到 SetupDiEnumDeviceInterfaces()
的重复调用中以遍历列表。然后,对于每个列表项,您必须调用 SetupDiGetDeviceInterfaceDetail()
以接收相应的设备路径。
关于windows - 通过 GUID 打开设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144918/