Partager via


0x4000008A de vérification des bogues : THREAD_TERMINATE_HELD_MUTEX

Le case activée de bogue THREAD_TERMINATE_HELD_MUTEX a la valeur 0x4000008A. Cela indique qu’un pilote a acquis un mutex sur un thread qui s’est arrêté avant que le mutex puisse être libéré. Cela peut être dû au retour d’un pilote en mode utilisateur sans libérer de mutex ou à l’acquisition d’un mutex par un pilote, puis par une exception qui entraîne l’arrêt du thread sur lequel il s’exécute.

Important

Cet article est destiné aux programmeurs. Si vous êtes un client qui a reçu un code d’erreur d’écran bleu lors de l’utilisation de votre ordinateur, consultez Résoudre les erreurs d’écran bleu.

paramètres de THREAD_TERMINATE_HELD_MUTEX

Paramètre Description
1 Adresse du KTHREAD propriétaire du KMUTEX.
2 Adresse du KMUTEX détenu.
3 Réservé
4 Réservé

Cause

L’extension de débogage !analyze affiche des informations sur le bogue case activée et peut être utile pour déterminer la cause racine.

Pour examiner, examinez la pile d’appels. S’il existe un pilote sur la pile qui est directement suivi par des routines de gestion des exceptions système, puis des routines d’arrêt de thread, ce pilote est en erreur et doit être corrigé afin qu’il ne provoque pas d’exception non gérée tout en conservant un mutex du noyau. Si la pile affiche simplement le code d’arrêt de thread normal et qu’aucun pilote n’est impliqué, exécutez !pool ou utilisez ln (Répertorier les symboles les plus proches) sur l’adresse du mutex (paramètre 2) et vérifiez si vous pouvez découvrir à qui appartient l’objet. Ce bogue se trouve presque certainement dans le code du propriétaire de ce mutex.