Partager via


Débogage d’un Co-Installer d’installation d’appareil

Certains packages d’installation de périphériques matériels incluent des fichiers DLL appelés co-programme d’installation, qui facilitent l’installation de l’appareil.

Vous ne pouvez pas déboguer un co-programme d’installation de la même façon que d’autres modules. Cela est dû à la façon unique dont un co-programme d’installation est chargé, et au fait que de nombreux scénarios d’installation se produisent automatiquement sans donner au développeur la possibilité d’intervenir dans le processus en cours d’exécution.

Vous pouvez résoudre ce problème en installant l’appareil par programme. L’attachement d’un débogueur à l’application qui installe l’appareil permet d’accéder au co-programme d’installation lui-même. La façon la plus simple d’y parvenir consiste à installer ou réinstaller l’appareil à l’aide de l’outil DevCon inclus dans le Kit de pilotes Windows (WDK). Vous pouvez ensuite déboguer le co-programme d’installation avec WinDbg.

Utilisez la procédure suivante pour accomplir cette tâche. Cette procédure suppose que vous avez développé un package d’installation de pilote opérationnel pour votre appareil qui utilise un co-programme d’installation. Elle suppose également que vous disposez de la dernière copie du WDK. Pour plus d’informations sur le développement de pilotes, de packages d’installation de pilotes et de co-programmes d’installation de pilotes, consultez la documentation WDK.

Débogage d’un co-programme d’installation à l’aide de DevCon et WinDbg

  1. Branchez le périphérique matériel.

  2. Annuler l’Assistant Nouveau matériel trouvé .

  3. Démarrez WinDbg.

  4. Sélectionnez Ouvrir l’exécutable dans le menu Fichier de WinDbg.

  5. Dans la boîte de dialogue Ouvrir le fichier exécutable , procédez comme suit :

    1. Dans la zone de texte de sélection de fichier, sélectionnez l’outil DevCon (Devcon.exe). Pour cela, accédez au dossier d’installation WDK, ouvrez les outils de sous-répertoire, ouvrez le sous-répertoire devcon, puis ouvrez le sous-répertoire qui correspond à l’architecture processeur de votre ordinateur, puis sélectionnez Devcon.exe. Cliquez une seule fois sur Devcon.exe et n’appuyez pas encore sur Ouvrir.

    2. Dans la zone de texte Arguments , entrez le texte suivant, où INFFile est le nom de fichier inf (Device Installation Information) et HardwareID est l’ID matériel de votre appareil :

      update INFFile HardwareID 
      
    3. Dans la zone de texte Répertoire de démarrage, entrez le chemin d’accès au package d’installation de votre appareil.

    4. Cliquez sur Ouvrir.

  6. Le processus de débogage commence, et WinDbg s’interrompt dans le processus DevCon avant que DevCon installe votre pilote.

  7. Configurez le débogueur pour qu’il s’insère dans le processus de co-programme d’installation lorsqu’il est chargé. Pour ce faire, utilisez l’une des méthodes suivantes :

    • Dans la fenêtre Commande du débogueur, utilisez la commande sxe (Définir des exceptions) suivie de ld : et le nom de fichier du co-programme d’installation, à l’exclusion de l’extension de fichier. Il ne doit pas y avoir d’espace après les deux-points. Par exemple, si le nom du co-programme d’installation est mycoinst.dll, vous devez utiliser la commande suivante :

      sxe ld:mycoinst 
      
    • Sélectionnez Filtres d’événements dans le menu Déboguer de WinDbg. Dans la boîte de dialogue Filtres d’événements, sélectionnez Charger le module. Sous Exécution, sélectionnez Activé. Sous Continuer, sélectionnez Non géré. Cliquez sur le bouton Argument , puis dans la zone de texte, entrez le nom de fichier du co-programme d’installation, à l’exclusion de l’extension de fichier (par exemple, entrez « mycoinst » pour mycoinst.dll). Cliquez sur OK , puis sur Fermer.

  8. Reprenez l’exécution en appuyant sur F5 ou en entrant la commande g (Go) dans la fenêtre Commande du débogueur.

  9. Lorsque le co-programme d’installation est chargé, l’exécution se réinsère dans le débogueur. À ce stade, vous pouvez définir tous les points d’arrêt supplémentaires dont vous avez besoin.

Limitations de cette procédure

Dans certains cas, l’exécution d’un package d’installation d’appareil sous DevCon peut entraîner un comportement légèrement différent de celui d’une installation PnP, en raison de jetons de sécurité différents et autres. Si vous essayez de déboguer un problème spécifique dans votre co-programme d’installation, il est possible que ce problème ne se réplique pas si DevCon est impliqué. Par conséquent, avant d’utiliser cette technique, vous devez utiliser DevCon pour installer votre pilote sans débogueur attaché pour vérifier que ce problème existe dans les scénarios PnP et DevCon.

Si le problème disparaît chaque fois que DevCon lance l’installation, vous devrez déboguer votre co-programme d’installation sans utiliser DevCon. Une façon de procéder consiste à utiliser l’outil TList avec l’option /m pour déterminer le processus qui charge le module de co-programme d’installation, puis en attachant le débogueur à ce processus.