Windows arrête l'erreur KMODE_EXCEPTION_NOT_HANDLED

Avant de déterminer la cause de cette erreur, vous devez identifier l'exception. Trois codes d’exception communs sont:

0x80000002 STATUS_DATATYPE_MISALIGNMENT .

Une référence de données non alignée a été rencontrée.

0x80000003 STATUS_BREAKPOINT .

Un point d'arrêt ou un ASSERT a été rencontré lorsqu'aucun débogueur de noyau n'était attaché au système.

0xC0000005 STATUS_ACCESS_VIOLATION .

Un accès mémoire violé s'est produit.

Le paramètre 4 (ci-dessus) est l'adresse à laquelle le pilote a tenté d'accéder.

Une liste complète des codes d'exception se trouve dans le fichier ntstatus.h, dans le répertoire inc du kit de pilotes Windows.

Dépannage de base et solution

À un niveau plus élémentaire, vous devriez commencer par ces étapes de dépannage de base.

  • Si le pilote en cause, désactivez le pilote ou recherchez les mises à jour du pilote.
  • Essayez de changer la carte vidéo de l'ordinateur pour voir si le problème est résolu.
  • Consultez le site Web du fabricant de la carte mère pour une mise à jour du BIOS.
  • Accédez au BIOS et désactivez la mise en cache ou l'observation de la mémoire.

Si votre problème n'est pas résolu, essayez de comparer tout matériel récemment installé à la liste des produits testés de Windows Marketplace pour vérifier qu'il est compatible avec votre version de Windows.

Si un pilote de périphérique est défectueux, il peut être nécessaire d'accéder à l'environnement du mode sans échec en appuyant sur la touche F8 du clavier lors du démarrage de votre ordinateur (avant d'accéder à Windows). Sélectionnez Mode sans échec dans le menu de démarrage lorsqu'il est affiché. En mode sans échec, vous pouvez supprimer le pilote de périphérique défectueux et redémarrer l'ordinateur. Continuez avec l’installation d’un pilote mis à jour, s’il en existe un.

Vous pouvez également consulter le journal système dans l'observateur d'événements pour voir s'il existe des messages d'erreur. Ces messages d'erreur peuvent aider à identifier la source du problème.

Dépannage complexe

Des étapes de dépannage supplémentaires, plus complexes, peuvent être entreprises si les solutions ci-dessus ne résolvent pas le problème. Ces étapes consistent à accéder à une trace de pile pour déterminer la cause du problème.

Pour obtenir une trace de pile, procédez comme suit:

  1. Exécutez la commande kb ( Display Stack Backtrace ) pour afficher les paramètres dans la trace de la pile. Cherchez un appel à NT! PspUnhandledExceptionInSystemThread.
  2. Le premier paramètre de l'appel pointe vers une structure, qui contient des pointeurs supplémentaires vers une instruction except:

    Exécutez la commande dd ( Display Memory ) sur l’adresse pour récupérer et afficher les informations appropriées.

  3. Exécutez les commandes .exr ( Display Exception Record ) et .cxr ( Display Context Record ) en utilisant les deux valeurs extraites à l'étape précédente comme arguments des commandes.
  4. Après avoir exécuté la commande .cxr, utilisez la commande kb pour afficher le suivi de la pile en fonction des données d’enregistrement de contexte. La trace de la pile indiquera où l'exception non gérée s'est produite.

Si vous ne trouvez pas l'appel à l'étape 1, recherchez plutôt ntoskrnl! KiDispatchException . A l'aide de l'adresse du cadre d'interruption (le troisième paramètre), exécutez la commande .trap ( Afficher le cadre d'interruption ) pour définir le contexte d'enregistrement sur la valeur appropriée pour exécuter les traces de pile et autres commandes.