0x1 de vérification des bogues : APC_INDEX_MISMATCH

Le case activée de bogue APC_INDEX_MISMATCH a la valeur 0x00000001. Le bogue case activée indique une incompatibilité dans l’index d’état des appels de procédure asynchrone (APC).

Important

Cet article est destiné aux programmeurs. Si vous êtes un client Microsoft et que votre ordinateur affiche un code d’erreur d’écran bleu, consultez Résoudre les erreurs d’écran bleu.

paramètres APC_INDEX_MISMATCH

Paramètre Description
1 Adresse de la fonction système (appel système) ou de la routine de travail.
2 Valeur du champ ApcStateIndex du thread actuel.
3 Valeur du champ CombinedApcDisable du thread actuel. Ce champ se compose de deux champs 16 bits distincts : (Thread>SpecialApcDisable<< 16) | Fil>KernelApcDisable.
4 Type d’appel :
0 - Appel système
1 - Routine de travail

Cause

La cause la plus courante de ce bogue case activée est quand un système de fichiers ou un pilote a une séquence d’appels incompatible pour désactiver et réactiver les API. L’élément de données clé est le champ Thread>CombinedApcDisable . Le champ CombinedApcDisable se compose de deux champs 16 bits distincts : SpecialApcDisable et KernelApcDisable. Une valeur négative de l’un ou l’autre des champs indique qu’un pilote a désactivé des API spéciales ou normales (respectivement) sans les réactiver. Une valeur positive indique qu’un pilote a activé trop de fois les API spéciales ou normales.

Résolution

Vous pouvez résoudre ce problème à l’aide de WinDbg ou de techniques de dépannage de base.

Déboguer à l’aide de WinDbg

L’extension de débogueur !analyze affiche des informations sur le bogue case activée et peut vous aider à déterminer la cause racine.

Vous pouvez utiliser l’extension !apc pour afficher le contenu d’un ou plusieurs API.

Vous pouvez également définir un point d’arrêt dans le code qui précède ce code d’arrêt et tenter d’avancer en une seule étape dans le code défaillant.

Pour plus d’informations sur l’utilisation de WinDbg, consultez Analyse du vidage sur incident à l’aide des débogueurs Windows (WinDbg).

Déboguer sans utiliser WinDbg

Si vous n’êtes pas équipé pour utiliser le débogueur Windows pour résoudre ce problème :

  • Dans observateur d'événements, case activée journal système pour obtenir d’autres messages d’erreur susceptibles de vous aider à identifier le périphérique ou le pilote à l’origine de ce bogue case activée.

  • Si un pilote est identifié dans un message de vérification d’erreur, désactivez-le ou contactez le fabricant pour obtenir les mises à jour.

  • Vérifiez que tout nouveau matériel installé est compatible avec la version installée de Windows. Par exemple, vous pouvez obtenir des informations sur le matériel requis dans Windows 10 spécifications.

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

Remarques

Ce bogue case activée est le résultat d’une erreur interne dans le noyau. Cette erreur se produit à la sortie d’un appel système. Une cause possible de ce bogue case activée est un système de fichiers ou un pilote qui a une séquence d’appels système incompatible pour entrer ou quitter des régions surveillées ou critiques. Par exemple, chaque appel à KeEnterCriticalRegion doit avoir un appel correspondant à KeLeaveCriticalRegion.

Si vous développez un pilote, vous pouvez utiliser Static Driver Verifier, un outil d’analyse statique disponible dans le Kit de pilotes Windows, pour détecter les problèmes dans votre code avant d’expédier votre pilote. Exécutez Static Driver Verifier avec la règle CriticalRegions pour vérifier que votre code source utilise ces appels système dans l’ordre correct.

Voir aussi

Informations de référence sur le code de case activée des bogues