C++ 在C\C中刷新Windows USB设备++

C++ 在C\C中刷新Windows USB设备++,c++,winapi,mfc,C++,Winapi,Mfc,我试图找到一种实用的方法,重新列举连接到PC USB端口的USB设备 在Windows中,可以打开设备管理器,然后右键单击电脑名称并选择扫描硬件更改 如何从C/C++程序中执行此或类似但特定于USB总线的操作?您可以在项目中使用cfgmgr32.lib库。这很容易。如果你不知道如何使用它,你可以再问我一次 BOOL ScanForHardwareChanges() { DEVINST devInst; CONFIGRET status; // //

我试图找到一种实用的方法,重新列举连接到PC USB端口的USB设备

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

如何从C/C++程序中执行此或类似但特定于USB总线的操作?

您可以在项目中使用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;
}    

MSDN:如何使用CM_Locate_DevNode函数?链接时间存在链接错误,如链接:致命错误LNK1104:无法打开文件“Cfgmgr32.lib”这将解决此问题,ps CM_Renumerate_DevNode需要管理员访问权限