C++ SetupApi SetupDiGetDeviceRegistryProperty SPDRP_DEVTYPE 失败

问题描述

我有 C++ 代码(适用于 VS6 到 VS2017),用于枚举 USB 设备并检索多个属性。我最近添加SPDRP_DEVTYPE

SetupDiGetDeviceRegistryProperty(hDevInfo,&DevData,SPDRP_DEVTYPE,0L,(BYTE*) &dwData,4,0);

调用返回'false',GetLastError() 然后返回13(“数据无效”)。尝试查询 SPDRP_characteristics 时也会发生同样的情况。

我尝试过的大多数其他 PropertyKey 值都运行良好(例如,SPDRP_CAPABILITIESSPDRP_PHYSICAL_DEVICE_OBJECT_NAMESPDRP_FRIENDLYNAME 等),但这两个值总是失败。>

管理员身份运行 EXE 不会改变任何内容。我在 Windows 7 (32/64) 和 Windows 10 上进行了测试。

此外,我尝试使用 CreateFile(成功)打开设备,然后使用 DeviceIoControl(),但每次调用 DeviceIoControl 都失败,错误 50“不支持

知道为什么这些调用不起作用吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...