J'ai trouvé le Sources du DevCon sur github .
A l'examen du programme, il n'y a pas de surprise. DevCon utilise le WDK pour Windows 10, version 1709 (Windows Development Kit) dont il fait partie. Le WDK est le seul outil de Windows permettant de développer, tester et déployer les pilotes Windows.
Concrètement, DevCon utilise une fonction unifiée, ControlCallback
, pour effectuer les opérations d'activation, de désactivation et de redémarrage. Le redémarrage est donc équivalent à la désactivation et à l'activation.
Il n'y a pas d'autre outil que le WDK pour opérer sur les périphériques, et il n'y a pas d'autres fonctions dans le WDK pour activer/désactiver les périphériques que celles qui sont utilisées par DevCon.
Comme le gestionnaire de périphériques est également écrit en utilisant le WDK, je dirais qu'il fait presque sûrement les mêmes opérations pour "Reset Hub" que DevCon le fait pour Restart. Il n'y a pas d'autres opérations dans le WDK pour faire cela, pour autant que j'ai pu en trouver.
Il convient de noter que l'opération elle-même est exécutée par le pilote. du périphérique, auquel le WDK transmet la commande. L'action réelle qui est effectuée dépend du pilote du périphérique. En examinant dans le gestionnaire de périphériques les pilotes pour le "Generic USB Hub" et "USB Root Hub" dans le Gestionnaire de périphériques. montre que les mêmes pilotes sont utilisés pour les deux. donc la commande "Reset Hub" ou "Restart" effectue très probablement une opération très similaire pour les deux périphériques.
(Cette réponse ne peut être définitive, car la source du Device Manager n'est pas publiée par Microsoft, mais je pense qu'elle est correcte).