C++程序中,怎么获取连接到usb上的设备的句柄?

先只考虑连接一块磁盘的情形
2025-06-22 17:47:04
推荐回答(1个)
回答1:

得区分通信协议来进行操作
如果是USB协议(有驱)那么通过驱动安装包中的INI文件得到设备GUID,调用SETUPAPI.DLL的SetupDiEnumDeviceInterfaces SetupDiGetClassDevsa SetupDiGetDeviceInterfaceDetaila SetupDiDestroyDeviceInfoList 几个API来枚举出USB设备路径,然后用CreateFile来得到设备句柄
如果是HID协议(无驱)因为所有的HID设备GUID是一样的,那么在同上步骤得到句柄后再调用HID.DLL的HidD_GetAttributes来得到PID和VID来确定是否是自己需要连接的设备。