4 votes

Comment trouver quel appareil est connecté au port USB (HID ou lecteur de disque) en C++

J'ai réussi à énumérer tous les ports USB connectés en utilisant des appels SetupDi. Un code d'exemple est disponible sur ce lien.

Pourriez-vous me dire comment je peux savoir quel périphérique est connecté au port USB, par exemple s'il s'agit d'un périphérique HID ou d'un lecteur de disque?

Merci.

1voto

Preston Points 2445

Je recommanderais de regarder l'exemple USBView dans le WDK. Si vous n'êtes pas familier avec cela, lancez-le simplement - cet outil parcourt l'ensemble de l'arbre USB sur le système et imprime des informations et des listes de descripteurs pour chaque périphérique.

Dans votre cas, je commencerais par la fonction RefreshTree() de cet exemple, vous pouvez ensuite suivre le code pour voir comment il énumère les contrôleurs hôtes, les concentrateurs et enfin les périphériques. Pour chaque périphérique que vous trouvez, vous pouvez regarder le bInterfaceClass dans les descripteurs d'interface pour savoir quels types d'interfaces il annonce (dans votre cas 0x03 pour la Classe d'Interface HID et 0x08 pour la Classe de Stockage de Masse).

Le moyen le plus simple d'obtenir le code source de cet exemple est d'installer le WDK 7.1.0 qui est actuellement disponible ici : http://www.microsoft.com/en-us/download/details.aspx?id=11800

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X