Accueil » Blog » Informatique » Windows » Code 38 : un pilote antérieur est toujours en mémoire

Code 38 : un pilote antérieur est toujours en mémoire

Le périphérique fonctionnait il y a dix minutes, un pilote vient d’être mis à jour, et le Gestionnaire de périphériques affiche « Windows ne peut pas charger le pilote de périphérique de ce matériel car une instance précédente de ce pilote de périphérique est présente en mémoire. (Code 38) ». Microsoft ne recommande qu’une seule résolution pour ce code : redémarrer l’ordinateur, un vrai redémarrage, pas un arrêt suivi d’une reprise.

Points clés

  • Libellé officiel du code 38 : CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD, dans la liste des codes du Gestionnaire de périphériques publiée par Microsoft.
  • Cause documentée : le pilote n’a pas pu être chargé car une instance antérieure est encore chargée en mémoire.
  • Résolution recommandée par Microsoft : redémarrer l’ordinateur via Démarrer, Arrêter, puis Redémarrer.
  • Un arrêt classique avec le démarrage rapide actif ne réinitialise pas la session du noyau : il peut laisser l’ancienne instance en place et le code revient.
  • Quand le code revient après un redémarrage propre, le problème est dans le paquet pilote lui-même, à retirer avec pnputil.
Schéma des étapes de résolution du code 38, du redémarrage à pnputil
Du redémarrage au nettoyage du paquet pilote.

Ce que le code 38 décrit réellement

Un pilote de périphérique s’exécute en mémoire noyau. Lorsqu’un périphérique est désinstallé, remplacé ou mis à jour, Windows doit décharger l’ancienne image du pilote avant de charger la nouvelle. Si ce déchargement échoue ou n’est jamais terminé, la nouvelle instance ne peut pas prendre la place et le gestionnaire de configuration marque le périphérique en code 38.

La différence avec les codes voisins est nette. Le code 37 signale un pilote qui a démarré et a renvoyé une erreur dans sa routine d’initialisation. Le code 39 signale un pilote endommagé ou absent. Le code 38 dit autre chose : le pilote existe, il est valide, mais la place est déjà prise.

A lire  Son grésillant ou qui coupe sous Windows 11 : les pilotes audio

Les situations qui déclenchent le code 38

  • Mise à jour d’un pilote de carte graphique, de carte réseau ou de contrôleur de stockage sans redémarrage entre l’ancienne et la nouvelle version.
  • Désinstallation d’un logiciel constructeur qui laisse son pilote filtre chargé, courant sur les suites de périphériques audio, de VPN ou de disques virtuels.
  • Branchement puis rebranchement rapide du même périphérique alors que la pile n’a pas fini de libérer l’instance.
  • Machine qui n’est jamais réellement éteinte, entre veille prolongée, démarrage rapide et sessions ouvertes pendant des semaines.

Solution 1 : redémarrer, la seule résolution officielle

Microsoft indique la manipulation exacte : bouton Démarrer, Arrêter, puis Redémarrer. L’ordre compte, car Redémarrer ferme la session du noyau et en recrée une, ce que fait rarement un simple arrêt sur une machine récente.

Après le retour sur le bureau, rouvrez le Gestionnaire de périphériques et regardez l’état du périphérique. Dans la majorité des cas, le code a disparu et le matériel est fonctionnel. S’il revient à chaque démarrage, passez à la suite : le pilote réintroduit l’instance fautive à chaque détection du matériel.

Solution 2 : désactiver le démarrage rapide pour obtenir un arrêt complet

Le démarrage rapide conserve une partie de l’état du système pour accélérer l’allumage suivant. Sur un code 38 récurrent, c’est exactement ce qu’il ne faut pas : l’instance de pilote restée en mémoire peut être reprise telle quelle. Dans les options d’alimentation du Panneau de configuration, ouvrez « Choisir l’action des boutons d’alimentation », cliquez sur « Modifier des paramètres actuellement non disponibles », puis décochez l’activation du démarrage rapide. Arrêtez la machine, attendez quelques secondes, rallumez.

Cette étape ne remplace pas le redémarrage recommandé par Microsoft, elle garantit seulement que l’arrêt fait bien ce que l’utilisateur croit qu’il fait.

Tableau des éléments encore chargés en mémoire lors d un code 38
Ce qui reste chargé quand le code 38 apparaît.

Solution 3 : désinstaller le périphérique puis relancer la détection

La procédure officielle de réinstallation manuelle d’un pilote s’applique aussi ici. Ouvrez le Gestionnaire de périphériques, faites un clic droit sur le périphérique concerné, choisissez Désinstaller, puis dans le menu Action sélectionnez « Rechercher les modifications sur le matériel ». Windows réinstalle le pilote et recrée une instance propre.

A lire  Erreur code 43 : périphérique USB ou carte graphique arrêté par Windows

Si la case proposant de supprimer le logiciel pilote est présente, cochez-la quand la version installée est justement celle qui pose problème. Sans cette option, Windows réinstalle le même paquet et le code peut réapparaître.

Solution 4 : retirer le paquet pilote du magasin avec pnputil

Quand le même pilote revient à chaque détection, il faut le sortir du magasin de pilotes. L’outil intégré pnputil est documenté par Microsoft. Ouvrez une invite de commandes en administrateur, puis listez les paquets tiers installés :

pnputil /enum-drivers

Repérez le paquet correspondant au périphérique, identifiable par le nom du fournisseur, la classe et la date de version, puis notez son nom publié de la forme oem12.inf. Supprimez-le :

pnputil /delete-driver oem12.inf /uninstall

L’option d’ajout du redémarrage existe également dans la syntaxe de l’outil. Installez ensuite la version du pilote fournie par le fabricant du matériel plutôt que celle qui posait problème. Sur un pilote fourni par Windows Update, laissez la détection automatique reprendre la main après le redémarrage.

Solution 5 : revenir à la version précédente du pilote

Si le code 38 est apparu juste après une mise à jour, l’onglet Pilote des propriétés du périphérique propose une restauration vers la version antérieure lorsque Windows l’a conservée. C’est la manipulation la moins risquée pour retrouver un poste utilisable, avant d’essayer une version plus récente publiée par le constructeur.

La page Microsoft sur la mise à jour manuelle des pilotes décrit l’enchaînement complet, recherche automatique puis sélection d’un pilote sur le disque. Évitez les utilitaires tiers de mise à jour de pilotes : ils installent souvent un paquet générique qui recrée la situation.

Vérifier l’état du périphérique et les journaux

Pour lire le message d’erreur complet, cliquez sur Démarrer, tapez « gestionnaire de périphériques » et sélectionnez le résultat. Cliquez avec le bouton droit sur l’appareil concerné, choisissez Propriétés, puis lisez la zone État du périphérique. L’onglet Détails et sa propriété « Chemin d’accès à l’instance du périphérique » identifient le bus et, sur un matériel USB, les identifiants du fournisseur et du produit décrits par Microsoft.

A lire  Code 24 : périphérique absent ou pilote mal installé

Quand le redémarrage et la désinstallation ne suffisent pas, le journal d’installation des périphériques donne la suite des événements de détection et de chargement. Microsoft en documente le fonctionnement dans sa page sur la journalisation SetupAPI. Le fichier permet de voir si le nouveau paquet a bien été installé avant l’échec de chargement, ou si l’installation a été abandonnée en amont.

Quand ça ne vient pas de là

Un code 38 qui touche plusieurs périphériques en même temps oriente vers un pilote filtre commun, typiquement un pilote de chiffrement, de sauvegarde ou de sécurité chargé pour toute une classe de matériel. Dans ce cas, la désinstallation propre du logiciel concerné règle l’ensemble.

Si le périphérique bascule vers un autre code après nettoyage, changez de piste : code 22 pour un périphérique désactivé, code 10 pour un échec de démarrage générique. Et si l’instabilité se termine en écran bleu, la piste du pilote défaillant se traite avec le dossier DRIVER_IRQL_NOT_LESS_OR_EQUAL.

Questions fréquentes

Le code 38 est-il grave ?

Non. C’est un conflit de chargement, pas une panne matérielle. La résolution officielle tient en un redémarrage, et les cas récurrents se règlent en retirant le paquet pilote fautif.

Pourquoi le code revient-il après chaque démarrage ?

Parce que le paquet pilote présent dans le magasin est réinstallé à chaque détection du matériel. Tant qu’il n’est pas supprimé avec pnputil ou remplacé par la version du constructeur, la situation se reproduit.

Faut-il désinstaller le logiciel du fabricant en plus du pilote ?

Oui quand ce logiciel installe un service ou un pilote filtre. Une désinstallation par les paramètres de Windows, suivie d’un redémarrage, évite qu’il recharge son composant avant le nouveau pilote.

Que faire si pnputil ne liste pas le pilote ?

C’est que le pilote est fourni avec Windows et non ajouté comme paquet tiers. Dans ce cas, la désinstallation du périphérique suivie d’une recherche des modifications sur le matériel est la bonne manipulation.

Un nettoyage de fichiers système peut-il aider ?

Marginalement. La commande sfc /scannow vérifie l’intégrité des fichiers protégés de Windows et élimine une variable, mais elle ne décharge pas une instance de pilote restée en mémoire.

Photo d’en-tête : carte graphique MSI GeForce GT 1030, par Gary Houston, licence CC0, via Wikimedia Commons. La photo illustre un type de matériel souvent concerné, pas un cas de code 38 précis.
Sources : Microsoft, codes d’erreur dans le Gestionnaire de périphériques sous Windows · Microsoft Learn, messages d’erreur du Gestionnaire de périphériques · Microsoft Learn, syntaxe des commandes pnputil · Microsoft, mettre à jour les pilotes dans Windows · Microsoft Learn, commande sfc · Microsoft Learn, journalisation SetupAPI. Vérifié le 16 septembre 2026.

Laisser un commentaire

Pin It on Pinterest