Accueil » Blog » Informatique » Windows » Code 37 : le pilote a renvoyé une erreur d’initialisation

Code 37 : le pilote a renvoyé une erreur d’initialisation

Le Gestionnaire de périphériques affiche « Windows ne peut pas initialiser le pilote de périphérique pour ce matériel » et barre l’appareil d’un point d’exclamation jaune. Le code 37 pointe presque toujours vers un paquet de pilote inadapté ou abîmé, pas vers une carte morte.

Points clés

  • Le code 37 correspond au problème CM_PROB_FAILED_DRIVER_ENTRY dans la liste officielle des messages du Gestionnaire de périphériques.
  • Traduction technique : la routine DriverEntry du pilote a renvoyé autre chose que STATUS_SUCCESS au moment du chargement.
  • Le matériel est détecté et alimenté. C’est la couche logicielle qui échoue, ce qui explique pourquoi un changement de port ne change rien.
  • La réinstallation propre du paquet de pilote règle la majorité des cas, à condition de supprimer aussi la copie stockée dans le magasin de pilotes.
  • Le journal setupapi.dev.log et l’Observateur d’événements donnent le nom du fichier .sys fautif quand la réinstallation ne suffit pas.

Ce que Windows signale exactement

Chaque appareil en défaut dans le Gestionnaire de périphériques porte un code numérique, et ces codes sont définis dans le fichier d’en-tête Cfg.h du système. Le 37 s’appelle CM_PROB_FAILED_DRIVER_ENTRY, ce qui se lit mot pour mot : l’entrée du pilote a échoué.

Quand Windows charge un pilote en mode noyau, il appelle sa routine DriverEntry, qui est la première fonction exécutée après le chargement. Cette routine initialise le pilote, alloue ses ressources et, chez les pilotes basés sur le framework WDF, appelle WdfDriverCreate. Si elle réussit, elle doit renvoyer STATUS_SUCCESS. Toute autre valeur de retour interrompt le chargement, et le Gestionnaire de périphériques transforme cet échec en code 37.

Conséquence pratique : l’appareil reste visible dans l’arborescence, avec ses propriétés et son identifiant matériel, mais il ne rend aucun service. Un contrôleur USB dans cet état ne fait plus fonctionner ce qui y est branché, une carte réseau ne remonte aucune connexion.

Tableau comparant le code 37 aux codes 19, 28, 39 et 52 du Gestionnaire de périphériques
Le code 37 se distingue des codes voisins par le moment précis où le chargement échoue.

Les causes qui reviennent

  • Mauvais paquet de pilote. Un pilote destiné à une révision voisine du même composant s’installe sans se plaindre, puis échoue à l’initialisation.
  • Fichier .sys abîmé ou incomplet. Téléchargement interrompu, archive extraite à moitié, coupure de courant pendant une mise à jour.
  • Restes d’une ancienne version. Deux paquets pour le même identifiant matériel cohabitent dans le magasin de pilotes et Windows retient le plus mauvais.
  • Pilote conçu pour une autre version de Windows. Un paquet prévu pour Windows 7 peut s’installer sur Windows 11 et refuser de s’initialiser.
  • Dépendance absente. Certains pilotes s’appuient sur un service ou un pilote de filtre installé par le même utilitaire du constructeur ; installer le seul fichier .inf ne suffit pas.
  • Ressources indisponibles. DriverEntry alloue de la mémoire et des objets système ; un conflit ou un manque de ressources fait échouer l’appel.
A lire  Que faire si mon PC ne démarre plus ou ne s'allume plus ?

Repérer le message exact dans les propriétés de l’appareil

Avant toute manipulation, lisez l’état que Windows affiche pour le périphérique concerné. Ouvrez le menu Démarrer, tapez « gestionnaire de périphériques » puis sélectionnez le résultat. Déployez la catégorie où l’appareil apparaît, cliquez dessus avec le bouton droit, choisissez « Propriétés » et lisez la zone « État du périphérique » de l’onglet Général : c’est là que figurent le message et le numéro du code.

L’onglet « Détails » livre deux informations utiles pour la suite. La valeur « ID matériel » donne la référence exacte du produit, indispensable pour retrouver le bon paquet. La valeur « Clé du pilote » indique l’emplacement dans le registre, donc le service pilote associé à l’appareil. Notez ces deux lignes, elles servent aux étapes suivantes.

Où télécharger le bon paquet chez le fabricant

La résolution recommandée par Microsoft passe par le paquet du fabricant du composant, pas par un logiciel intermédiaire. Cherchez sur le site du constructeur la page d’assistance du produit, section pilotes et téléchargements, puis filtrez sur votre version de Windows et sur l’architecture 64 bits.

  • Utilisez la référence exacte du modèle comme clé de recherche, ou l’ID matériel relevé plus haut.
  • Vérifiez la date de publication et les informations de compatibilité avant de télécharger les fichiers.
  • Conservez l’archive : elle permet de réinstaller sans réseau si l’appareil en défaut est justement la carte réseau.
  • Le support technique du fabricant peut fournir une version antérieure quand la dernière pose des problèmes sur votre modèle.

Un poste d’entreprise géré par un service informatique fait exception : le paquet validé par ce service prime, parce qu’il est testé avec le reste du parc.

Solution 1 : arrêt complet puis nouvelle tentative

Commencez par le geste le moins risqué. Un arrêt complet, alimentation coupée quelques secondes, remet à zéro l’état du contrôleur et de son pilote. Sur un portable dont le démarrage rapide est actif, un simple redémarrage ne vide pas toujours cet état. Après le retour sur le bureau, ouvrez le Gestionnaire de périphériques, faites un clic droit sur l’appareil et choisissez « Rechercher les modifications sur le matériel ». Si l’appareil redémarre correctement et que le message disparaît, laissez le poste tourner une journée avant de conclure : un code 37 qui revient au redémarrage suivant signale un paquet fautif encore en place.

A lire  PME : comment l'infogérance informatique peut transformer votre croissance dès 2025 ?

Solution 2 : réinstaller le paquet de pilote

Le Gestionnaire de périphériques sait désinstaller à la fois l’appareil et son paquet. Clic droit sur l’appareil, « Désinstaller l’appareil », puis cochez la case qui propose de supprimer le pilote quand elle apparaît. Redémarrez : Windows redétecte le matériel et réapplique le meilleur paquet dont il dispose.

Récupérez ensuite le pilote sur le site du fabricant du composant, pas sur un site d’agrégation. Vérifiez la référence exacte du modèle et la version de Windows visée avant de lancer l’installation. La procédure détaillée côté Windows 11 est décrite dans notre guide pour mettre à jour les pilotes sans logiciel tiers.

Solution 3 : vider le magasin de pilotes avec pnputil

Quand la désinstallation laisse une copie du paquet dans le magasin, Windows la réinstalle aussitôt et l’erreur revient. L’outil en ligne de commande pnputil, livré avec Windows, permet de lister puis de retirer ces paquets.

  1. Ouvrez une invite de commandes en tant qu’administrateur.
  2. Listez les paquets tiers présents avec pnputil /enum-drivers.
  3. Repérez le nom publié, de la forme oem12.inf, correspondant au fournisseur et à la classe de votre appareil.
  4. Retirez-le avec pnputil /delete-driver oem12.inf /uninstall.
  5. Redémarrez, puis installez le paquet du constructeur.

Ne supprimez que le paquet identifié. Un retrait à l’aveugle peut priver un autre appareil de son pilote.

Solution 4 : revenir à la version précédente

Si le code 37 est apparu juste après une mise à jour de pilote, l’onglet « Pilote » des propriétés de l’appareil propose « Restaurer le pilote ». Le bouton est grisé quand Windows n’a pas conservé de version antérieure, ce qui arrive après un nettoyage de disque. Dans ce cas, téléchargez manuellement la version précédente depuis la page de support du modèle.

Séquence des sept manipulations pour résoudre le code 37, de la moins risquée à la plus lourde
Ordre de travail conseillé : les opérations destructives arrivent en dernier.

Solution 5 : lire les journaux pour nommer le fichier fautif

Windows consigne toutes les installations d’appareils dans %SystemRoot%\Inf\setupapi.dev.log. Ce fichier texte est lisible dans le Bloc-notes et se parcourt de la fin vers le début : les dernières sections correspondent à la tentative la plus récente. Cherchez les lignes marquées comme erreur et le nom du fichier .sys mentionné juste avant.

L’Observateur d’événements complète le tableau côté chargement, dans les journaux Système. Notre article sur la lecture d’un plantage dans l’Observateur d’événements détaille le filtrage par source et par niveau. Une fois le fichier identifié, une recherche sur son nom mène en général à l’utilitaire ou au constructeur qui l’a déposé.

A lire  Erreur 0xc000021a : réparer le démarrage de Windows

Solution 6 : les vérifications lourdes, en dernier

Ces manipulations sont plus longues et méritent une sauvegarde préalable des documents.

  1. Contrôle des fichiers système. Dans une invite de commandes administrateur : sfc /scannow, puis DISM /Online /Cleanup-Image /RestoreHealth si des erreurs subsistent.
  2. Test sur un autre poste. Un périphérique amovible qui produit le même code 37 ailleurs est probablement en cause lui-même.
  3. Retrait du matériel superflu. Sur une carte interne, débranchez les autres cartes d’extension pour écarter un conflit de ressources.
  4. Mise à jour du firmware. Certains contrôleurs de stockage et cartes réseau exigent une version minimale de firmware pour le pilote actuel.

La réinstallation de Windows arrive après tout cela, et pas avant : elle ne corrige rien si le paquet de pilote installé ensuite est le même.

Quand le code 37 ne vient pas du pilote

Deux situations trompent régulièrement le diagnostic. La première : un appareil déclaré en code 37 alors que le vrai problème est électrique, sur un hub USB non alimenté qui ne fournit pas assez de courant. La seconde : un code voisin mal lu. Le code 39 signale un pilote corrompu ou manquant, le code 28 une absence d’installation, le code 19 une entrée de registre invalide. Les remèdes ne sont pas les mêmes.

Si l’appareil provoque aussi des plantages, le pilote est peut-être chargé par intermittence avant d’échouer. Le guide des écrans bleus par code d’arrêt aide à recouper les deux symptômes.

Questions fréquentes

Le code 37 signifie-t-il que le matériel est mort ?

Non. Windows a énuméré l’appareil, donc le bus le voit. L’échec se produit à l’initialisation du pilote, une étape purement logicielle.

Un logiciel de mise à jour automatique des pilotes règle-t-il le problème ?

Rarement, et il peut l’aggraver en posant un paquet générique à la place de celui du constructeur. Le paquet officiel du fabricant du composant reste la référence.

Faut-il désactiver la vérification de signature ?

Non, ce levier concerne un autre message, le code 52, qui porte sur une signature numérique non vérifiable. Le code 37 n’a aucun rapport avec la signature.

Pourquoi l’erreur revient-elle après chaque redémarrage ?

Parce que le paquet fautif est encore dans le magasin de pilotes. Retirez-le avec pnputil avant de réinstaller, sinon Windows le réapplique automatiquement.

Faut-il toucher au registre ?

Pas directement. Les entrées de registre du périphérique sont réécrites par la réinstallation du paquet, et une modification manuelle risque de produire un code 19, donc un second problème par-dessus le premier.

Le mode sans échec peut-il aider ?

Il sert surtout à désinstaller un paquet qui refuse de partir en session normale, quand un service du constructeur le maintient en place.

Photo d’en-tête : carte contrôleur d’un lecteur de cartes interne, par Raimond Spekking, CC BY-SA 4.0, via Wikimedia Commons. La photo illustre un contrôleur matériel type, elle ne représente pas un appareil précis touché par le code 37.
Sources : Messages d’erreur du Gestionnaire de périphériques et DriverEntry pour les pilotes WDF, Microsoft Learn ; pnputil ; Journalisation SetupAPI ; Désinstaller des appareils et des paquets de pilotes ; Résolution des problèmes d’installation d’appareils.

Laisser un commentaire

Pin It on Pinterest