网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

阅读setupdienumdeviceinfo详解,轻松掌握设备信息配置技巧!

GG网络技术分享 2025-11-12 19:04 3


根据您给的代码片段和说说您正在用Windows API中的SetupDiGetClassDevsSetupDiEnumDeviceInfo函数来枚举系统中的USB设备信息。

  1. 初始化设备信息句柄: cpp HDEVINFO hDevInfo = SetupDiGetClassDevs; 这行代码创建了一个设备信息集合句柄hDevInfo,用于存储系统中全部类别的设备信息。参数中:

    • NULL 表示不指定具体的类名,所以呢获取全部类别的设备。
    • NULL 表示不用特定的枚举器。
    • NULL 表示不需要父窗口句柄。
    • DIGCF_ALLCLASSESDIGCF_PRESENT 是标志,分别表示获取全部类别的设备和获取当前存在的设备。
  2. 枚举设备信息: cpp SP_DEVINFO_DATA DeviceInfoData; DeviceInfoData.cbSize = sizeof; for ; Index++) { // 获取设备信息 } 这段代码通过循环调用SetupDiEnumDeviceInfo函数来枚举设备信息。SetupDiEnumDeviceInfo函数的参数包括:

    • DeviceInfoSet: 设备信息句柄。
    • MemberIndex: 当前枚举的设备索引,初始为0。
    • DeviceInfoData: 用于存储设备信息的结构体。

    循环中的SetupDiEnumDeviceInfo函数返回TRUE时 表示成功获取了一个设备信息;返回FALSE时表示Yi枚举完全部设备,或者发生错误。

  3. 获取设备详细信息: 您兴许还需要获取设备的具体信息, 如设备名称、结实件ID、兼容ID等。这Neng通过调用SetupDiGetDeviceRegistryProperty函数实现, 如下所示: cpp TCHAR buffer; DWORD bufferSize = sizeof; if buffer, bufferSize, NULL)) { // 打印设备名称 wprintf; }

  4. 清理材料: 在枚举完全部设备后不要记不得释放设备信息句柄,以避免内存泄漏: cpp SetupDiDestroyDeviceInfoList;

通过这些个步骤,您得Neng够成功地枚举系统中全部USB设备的详细信息。Ru果在枚举过程中遇到问题, 比方说SetupDiEnumDeviceInfo返回FALSE,请检查错误代码以确定问题所在并进行相应的错误处理。

标签:

提交需求或反馈

Demand feedback