【问题标题】:Windows USB device refresh in C\C++C\C++ 中的 Windows USB 设备刷新
【发布时间】:2015-10-29 17:34:01
【问题描述】:

我正在尝试找到一种方法来实用地重新枚举连接到 PC 的 USB 端口的 USB 设备。

在 Windows 中,可以打开设备管理器,然后右键单击 PC 名称并选择“扫描硬件更改”。

如何从 C/C++ 程序执行这个(或类似但特定于 USB 总线的东西)?

【问题讨论】:

标签: c++ winapi mfc


【解决方案1】:

您可以在项目中使用cfgmgr32.lib 库。这很简单。不知道怎么用的可以再问我。

BOOL ScanForHardwareChanges() 
{
    DEVINST     devInst;
    CONFIGRET   status;

   // 
   // Get the root devnode.
   // 

   status = CM_Locate_DevNode(&devInst, NULL, CM_LOCATE_DEVNODE_NORMAL);

   if (status != CR_SUCCESS) {
       printf("CM_Locate_DevNode failed: %x\n", status);
       return FALSE;
   }

   status = CM_Reenumerate_DevNode(devInst, 0);

   if (status != CR_SUCCESS) {
       printf("CM_Reenumerate_DevNode failed: %x\n", status);
       return FALSE;
   }

   return TRUE;
}    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多