通过GUID打开设备

时间:2011-02-28 16:50:25

标签: windows file-io driver guid

我正在尝试使用供应商提供的软件包访问物理设备。

在早期版本的软件包中,用户可以通过DOS符号名称打开设备:

hDevice= CreateFile("\\\\.\\DevName", 
    GENERIC_READ | GENERIC_WRITE, 
    0, NULL, OPEN_ExiSTING, 0, NULL);

但是,他们发布了一个新版本,该版本要求GUID打开设备,并且标题中包含DEFINE_GUID。此更新还禁用了打开设备的旧方法。

他们没有更新他们的文档以显示如何通过GUID打开设备,但我找不到任何对我的google-fu有用的内容。

当然必须有一个示例显示如何使用GUID打开设备?

2 个答案:

答案 0 :(得分:6)

供应商很可能为您提供了“设备界面GUID”。 要获取可用于CreateFile()的名称,必须枚举具有该GUID的所有设备。这是通过使用标记SetupDiGetClassDevs()调用DIGCF_DEVICEINTERFACE来完成的。结果列表由设备信息集(HDEVINFO)的句柄表示。然后,您将该句柄反馈到SetupDiEnumDeviceInterfaces()的重复调用以遍历列表。对于每个列表项,您必须调用SetupDiGetDeviceInterfaceDetail()以接收相应的设备路径。

答案 1 :(得分:3)

你现在可能已经弄明白了,但是WinObj非常便于在对象管理器命名空间中查找。一旦找到了您正在寻找的对象的名称,就可以非常直接地将其打开。