J'essaie de trouver un moyen de ré-énumérer de manière pragmatique les périphériques USB connectés aux ports USB du PC.
Sous Windows, il est possible d’ouvrir le Gestionnaire de périphériques, de cliquer ensuite avec le bouton droit de la souris sur le nom du PC et de sélectionner "Rechercher les modifications sur le matériel".
Comment puis-je exécuter ceci (ou quelque chose de similaire mais spécifique au bus USB) à partir d'un programme C / C ++?
Réponses:
2 pour la réponse № 1Vous pouvez utiliser cfgmgr32.lib
bibliothèque dans votre projet. C’est facile. Si vous ne savez pas comment vous en servir, vous pouvez me le redemander.
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: %xn", status);
return FALSE;
}
status = CM_Reenumerate_DevNode(devInst, 0);
if (status != CR_SUCCESS) {
printf("CM_Reenumerate_DevNode failed: %xn", status);
return FALSE;
}
return TRUE;
}