0xA de vérification des bogues : IRQL_NOT_LESS_OR_EQUAL

La valeur de la vérification du bogue IRQL_NOT_LESS_OR_EQUAL est 0x0000000A. Cette vérification de bogue indique que Microsoft Windows ou un pilote en mode noyau a accédé à la mémoire paginée à une adresse non valide alors qu’un niveau de demande d’interruption élevé (IRQL). La cause est généralement un pointeur incorrect ou un problème de paginabilité.

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 IRQL_NOT_LESS_OR_EQUAL

Paramètre Description
1 Adresse de mémoire virtuelle inaccessible.

Utilisez !pool sur cette adresse pour voir s’il s’agit d’un pool paginé. D’autres commandes qui peuvent être utiles pour collecter des informations sur l’échec sont !pte, !address et ln (Répertorier les symboles les plus proches).
2 IRQL au moment de l’erreur.

Valeurs :
2 - L’IRQL a été DISPATCH_LEVEL au moment de l’erreur.
3 Champ bit qui décrit l’opération à l’origine de l’erreur. Notez que le bit 3 est disponible uniquement sur les puces qui prennent en charge ce niveau de création de rapports.

Valeurs du bit 0 :
0 - Opération de lecture
1 - Opération d’écriture

Valeurs du bit 3 :
0 - Pas une opération d’exécution
1 - Exécuter l’opération

Valeurs combinées des bits 0 et 3 :
0x0 : erreur lors de la tentative de lecture à partir de l’adresse dans le paramètre 1
0x1 : erreur lors de la tentative d’ÉCRITURE dans l’adresse dans le paramètre 1
0x8 - Erreur lors de la tentative d’EXÉCUTION du code à partir de l’adresse dans le paramètre 1

Cette valeur est due à :
  • Appel d’une fonction qui ne peut pas être appelée à DISPATCH_LEVEL en DISPATCH_LEVEL.
  • Oubliant de libérer un verrouillage tournant.
  • Marquage du code comme paginable lorsqu’il doit être non paginable. Par exemple, si le code acquiert un verrouillage tournant ou est appelé dans un appel de procédure différée.
4 Pointeur d’instruction au moment de l’erreur.

Utilisez la commande ln (Répertorier les symboles les plus proches) sur cette adresse pour afficher le nom de la fonction.

Cause

Cette vérification des bogues est due aux pilotes de périphérique en mode noyau qui utilisent des adresses incorrectes.

Cette vérification de bogue indique qu’une tentative d’accès à une adresse non valide a été effectuée alors qu’un niveau de demande d’interruption élevé (IRQL) a été effectué. La cause est un pointeur de mémoire incorrect ou un problème de paginabilité avec le code du pilote de périphérique.

Les instructions générales que vous pouvez utiliser pour classer le type d’erreur de codage à l’origine de la vérification des bogues sont les suivantes :

  • Si le paramètre 1 est inférieur à 0x1000, le problème est probablement une déréférencement de pointeur NULL.

  • Si !pool signale que le paramètre 1 est un pool paginé (ou d’autres types de mémoire paginable), l’IRQL est trop élevé pour accéder à ces données. Exécutez avec un IRQL inférieur ou allouez les données dans le pool sans paginé.

  • Si le paramètre 3 indique que la vérification du bogue était une tentative d’exécution de code paginable, l’IRQL est trop élevé pour appeler cette fonction. Exécutez un IRQL inférieur ou ne marquez pas le code comme pouvant être paginé.

  • Il peut s’agir d’un pointeur incorrect dû à l’utilisation après l’utilisation libre ou au basculement de bits. Examinez la validité du paramètre 1 avec !pte, !address et ln (lister les symboles les plus proches).

Résolution

Si un débogueur de noyau est disponible, obtenez une trace de pile. Commencez par exécuter l’extension du débogueur !analyze pour afficher des informations sur la vérification des bogues. L’extension !analyze peut être utile pour déterminer la cause racine. Ensuite, entrez l’une des commandes k* (backtrace de la pile d’affichage) pour afficher la pile des appels.

Collecter des informations

Examinez le nom du pilote s’il a été répertorié sur l’écran bleu.

Vérifiez le journal système observateur d'événements d’autres messages d’erreur susceptibles d’aider à identifier le périphérique ou le pilote à l’origine de l’erreur. Recherchez les erreurs critiques dans le journal système qui se sont produites dans la même période que l’écran bleu.

Driver Verifier

Driver Verifier est un outil qui s’exécute en temps réel pour examiner le comportement des pilotes. Par exemple, Driver Verifier vérifie l’utilisation des ressources de mémoire, telles que les pools de mémoire. S’il identifie des erreurs dans l’exécution du code du pilote, il crée de manière proactive une exception pour permettre à cette partie du code du pilote d’être examinée plus en détail. Le Gestionnaire du vérificateur de pilotes est intégré à Windows et est disponible sur tous les PC Windows.

Pour démarrer le Gestionnaire du vérificateur de pilotes, tapez vérificateur à l’invite de commandes. Vous pouvez configurer les pilotes à vérifier. Le code qui vérifie les pilotes ajoute une surcharge à mesure qu’il s’exécute. Essayez donc de vérifier le plus petit nombre de pilotes possible. Pour plus d’informations, consultez Vérificateur de pilote.

Le code suivant montre un exemple de débogage :

kd> .bugcheck       [Lists bug check data.]
Bugcheck code 0000000a
Arguments 00000000 0000001c 00000000 00000000

kd> kb [Lists the stack trace.]
ChildEBP RetAddr  Args to Child
8013ed5c 801263ba 00000000 00000000 e12ab000 NT!_DbgBreakPoint
8013eecc 801389ee 0000000a 00000000 0000001c NT!_KeBugCheckEx+0x194
8013eecc 00000000 0000000a 00000000 0000001c NT!_KiTrap0E+0x256
8013ed5c 801263ba 00000000 00000000 e12ab000
8013ef64 00000246 fe551aa1 ff690268 00000002 NT!_KeBugCheckEx+0x194

kd> kv [Lists the trap frames.]
ChildEBP RetAddr  Args to Child
8013ed5c 801263ba 00000000 00000000 e12ab000 NT!_DbgBreakPoint (FPO: [0,0,0])
8013eecc 801389ee 0000000a 00000000 0000001c NT!_KeBugCheckEx+0x194
8013eecc 00000000 0000000a 00000000 0000001c NT!_KiTrap0E+0x256 (FPO: [0,0] TrapFrame @ 8013eee8)
8013ed5c 801263ba 00000000 00000000 e12ab000
8013ef64 00000246 fe551aa1 ff690268 00000002 NT!_KeBugCheckEx+0x194

kd> .trap 8013eee8 [Gets the registers for the trap frame at the time of the fault.]
eax=dec80201 ebx=ffdff420 ecx=8013c71c edx=000003f8 esi=00000000 edi=87038e10
eip=00000000 esp=8013ef5c ebp=8013ef64 iopl=0         nv up ei pl nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010202
ErrCode = 00000000
00000000 ???????????????    [The current instruction pointer is NULL.]

kd> kb       [Gives the stack trace before the fault.]
ChildEBP RetAddr  Args to Child
8013ef68 fe551aa1 ff690268 00000002 fe5620d2 NT!_DbgBreakPoint
8013ef74 fe5620d2 fe5620da ff690268 80404690
NDIS!_EthFilterIndicateReceiveComplete+0x31
8013ef64 00000246 fe551aa1 ff690268 00000002 elnkii!_ElnkiiRcvInterruptDpc+0x1d0

Notes

L’erreur qui génère cette vérification de bogue se produit généralement après l’installation d’un pilote de périphérique, d’un service système ou d’un BIOS défectueux.

Si vous rencontrez une vérification des bogues 0xA lors de la mise à niveau vers une version plus récente de Windows, l’erreur peut être due à un pilote de périphérique, à un service système, à un scanneur antivirus ou à un outil de sauvegarde incompatible avec la nouvelle version.

Résolution d’un problème matériel défectueux : Si du matériel a été ajouté au système récemment, supprimez-le pour voir si l’erreur se répète. Si le matériel existant a échoué, supprimez ou remplacez le composant défectueux. Exécutez les diagnostics matériels fournis par le fabricant du système. Pour plus d’informations sur ces procédures, consultez le manuel du propriétaire de votre ordinateur.

Résolution d’un problème de service système défectueux : Désactivez le service et vérifiez si cela résout l’erreur. Dans ce cas, contactez le fabricant du service système au sujet d’une mise à jour possible. Si l’erreur se produit lors du démarrage du système, examinez les options de réparation Windows. Pour plus d’informations, consultez Options de récupération dans Windows 10.

Résolution d’un problème de logiciel antivirus : Désactivez le programme et vérifiez si cela résout l’erreur. Si c’est le cas, contactez le fabricant du programme au sujet d’une mise à jour possible.

Pour obtenir des informations générales sur la résolution des problèmes de vérification des bogues, consultez Données d’écran bleu.

Voir aussi

Référence du code de vérification des bogues