我正在尝试使用供应商提供的软件包访问物理设备。
在早期版本的软件包中,用户可以通过DOS符号名称打开设备:
hDevice= CreateFile("\\\\.\\DevName",
GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_ExiSTING, 0, NULL);
但是,他们发布了一个新版本,该版本要求GUID打开设备,并且标题中包含DEFINE_GUID
。此更新还禁用了打开设备的旧方法。
他们没有更新他们的文档以显示如何通过GUID打开设备,但我找不到任何对我的google-fu有用的内容。
当然必须有一个示例显示如何使用GUID打开设备?
答案 0 :(得分:6)
供应商很可能为您提供了“设备界面GUID”。
要获取可用于CreateFile()
的名称,必须枚举具有该GUID的所有设备。这是通过使用标记SetupDiGetClassDevs()
调用DIGCF_DEVICEINTERFACE
来完成的。结果列表由设备信息集(HDEVINFO)的句柄表示。然后,您将该句柄反馈到SetupDiEnumDeviceInterfaces()
的重复调用以遍历列表。对于每个列表项,您必须调用SetupDiGetDeviceInterfaceDetail()
以接收相应的设备路径。
答案 1 :(得分:3)
你现在可能已经弄明白了,但是WinObj非常便于在对象管理器命名空间中查找。一旦找到了您正在寻找的对象的名称,就可以非常直接地将其打开。