L'exemple de programme USBView.exe n'énumère pas les périphériques sur les ordinateurs exécutant une version de Windows antérieure à Windows XP SP1

Traductions disponibles Traductions disponibles
Numéro d'article: 838100 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous pouvez rencontrer les problèmes suivants lorsque vous utilisez le programme USBView.exe pour énumérer vos périphériques et contrôleurs hôtes USB (Universal Serial Bus) :
  • Problème A - Les contrôleurs hôtes USB 2.0 ne sont pas énumérés sur les ordinateurs Microsoft Windows 2000.
  • Problème B - Les périphériques USB connectés ne sont pas affichés.

    La version du programme USBView.exe générée à l'aide du kit DDK Windows XP Service Pack 1 n'affiche pas les périphériques USB lorsque vous exécutez l'exemple de programme sur les systèmes d'exploitation suivants :
    • Version d'origine de Microsoft Windows XP.
    • Toutes les versions de Microsoft Windows 2000, Microsoft Windows Millennium Edition et Microsoft Windows 98.

Cause

Problème A - Les contrôleurs hôtes USB 2.0 ne sont pas énumérés sur les ordinateurs Windows 2000

Le programme USBView.exe n'énumère pas les contrôleurs hôtes USB 2.0 sur les ordinateurs Windows 2000 en raison de l'exécution de deux piles de pilotes USB différentes sur les ordinateurs Windows 2000, comme suit :
  • La première pile est utilisée pour les contrôleurs hôtes USB 1.1.
  • La deuxième pile est utilisée pour les contrôleurs hôtes USB 2.0.
Les deux piles de pilotes USB créent des noms de liaisons symboliques au format suivant, où x représente un numéro d'instance :
\DosDevices\HCDx
Elles commencent toutes les deux par le numéro d'instance 0. Par conséquent, elles tentent de créer le nom de liaison symbolique suivant :
\DosDevices\HCD0
La pile de pilotes USB 2.0 tente de créer ce nom de liaison symbolique après qu'il ait déjà été créé par la pile de pilotes USB 1.1. Par conséquent, le nom de liaison symbolique n'est pas créé et il n'est pas possible d'accéder au contrôleur hôte USB 2.0 par le biais d'une liaison symbolique.

Problème B - Les périphériques USB connectés ne sont pas affichés

La pile de pilotes USB incluse dans Windows XP SP1 prend en charge le nouveau contrôle d'entrée/sortie (IOCTL) suivant :
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
Ce contrôle IOCTL remplace la version antérieure : IOCTL_USB_GET_NODE_CONNECTION_INFORMATION. Cette ancienne version du contrôle IOCTL était utilisée dans les versions antérieures du programme USBView.exe.

Le programme USBView.exe a été modifié de manière à utiliser le nouveau contrôle IOCTL, car celui-ci renvoie des informations indiquant si un périphérique USB fonctionne à haut débit.

Si vous tentez d'utiliser IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX sur un ordinateur exécutant une version de Windows antérieure à Windows XP SP 1, l'opération échouera. En outre, aucune information sur le périphérique USB ne sera affichée.

Résolution

Problème A - Les contrôleurs hôtes USB 2.0 ne sont pas énumérés sur les ordinateurs Microsoft Windows 2000

Outre l'utilisation d'un nom de liaison symbolique, la nouvelle pile de pilotes USB prend en charge l'utilisation d'une interface de périphérique GUID.

La fonction EnumerateHostControllers du fichier Enum.c comporte une section dont les commentaires expliquent comment utiliser cette technique pour l'énumération du contrôleur hôte. Vous pouvez la modifier de sorte qu'elle détecte l'exécution sur un ordinateur Windows 2000. Vous pouvez ensuite utiliser la méthode d'énumération GUID et la méthode de liaison symbolique simultanément pour énumérer tous les contrôleurs hôtes USB.

Problème B - Les périphériques USB connectés ne sont pas affichés

Il est possible de modifier toutes les utilisations du nouveau contrôle IOCTL, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, dans le programme USBView.exe. Vous pouvez modifier le contrôle de sorte qu'en cas d'échec, le programme USBView.exe revienne à l'ancienne version, à savoir IOCTL_USB_GET_NODE_CONNECTION_INFORMATION.

Cette solution permet au programme USBView.exe de continuer à détecter si le périphérique d'un ordinateur exécutant Windows XP SP1 ou une version ultérieure de Windows est exécuté à haut débit. De plus, ce scénario permet l'affichage des périphériques USB connectés à des ordinateurs exécutant une version de Windows antérieure à Windows XP SP1.

Plus d'informations

Ce problème a été corrigé dans le kit DDK Windows Server 2003 Service Pack 1.

Propriétés

Numéro d'article: 838100 - Dernière mise à jour: jeudi 15 juin 2006 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows XP Driver Development Kit
Mots-clés : 
kbprb KB838100
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com