通过GUID打开设备

Wil*_*ate 2 windows file-io guid driver

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

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

hDevice= CreateFile("\\\\.\\DevName", 
    GENERIC_READ | GENERIC_WRITE, 
    0, NULL, OPEN_ExiSTING, 0, NULL);
Run Code Online (Sandbox Code Playgroud)

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

他们没有更新他们的文档,以显示如何通过GUID打开设备,我无法找到任何有用的谷歌.

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

小智 6

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