如何解决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_CAPABILITIES
、SPDRP_PHYSICAL_DEVICE_OBJECT_NAME
、SPDRP_FRIENDLYNAME
等),但这两个值总是失败。>
以管理员身份运行 EXE 不会改变任何内容。我在 Windows 7 (32/64) 和 Windows 10 上进行了测试。
此外,我尝试使用 CreateFile(成功)打开设备,然后使用 DeviceIoControl(),但每次调用 DeviceIoControl 都失败,错误 50“不支持”
知道为什么这些调用不起作用吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。