Bug Check 0x19 : BAD_POOL_HEADER
Le bogue BAD_POOL_HEADER a une valeur de 0x00000019. Cela indique qu’un en-tête de pool est corrompu.
Important
Cet article s’adresse aux programmeurs. Si vous êtes un client et que vous avez reçu ce code d’erreur d’écran bleu en utilisant votre ordinateur, consultez Résoudre les erreurs d’écran bleu.
Paramètres de BAD_POOL_HEADER
Le paramètre 1 indique le type de violation. La signification des autres paramètres dépend de la valeur du Paramètre 1.
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0x2 |
L’entrée de pool en cours de vérification |
La taille du segment de pool |
0 |
La vérification du modèle spécial de pool a échoué. (Le propriétaire a probablement corrompu le segment de pool). |
0x3 |
L’entrée de pool en cours de vérification |
La valeur de la liste libre flink lue en retour |
La valeur de la liste libre blink lue en retour |
La liste libre du pool est corrompue. (Dans une liste saine, les valeurs des paramètres 2, 3 et 4 devraient être identiques). |
0x5 |
Une des entrées du pool |
Reserved |
L’autre entrée du pool |
Une paire d’entrées de pool adjacentes ont des en-têtes qui se contredisent. Au moins l’une d’elles est corrompue. |
0x6 |
Une entrée calculée incorrectement |
Reserved |
La mauvaise entrée qui a causé le mauvais calcul |
La taille précédente de l’en-tête du segment de pool est trop grande. |
0x7 |
0 |
Reserved |
La mauvaise entrée de pool |
La taille de l’en-tête du segment de pool est corrompue. |
0x8 |
0 |
Reserved |
La mauvaise entrée de pool |
La taille de l’en-tête du segment de pool est nulle. |
0x9 |
Une entrée calculée incorrectement |
Reserved |
La mauvaise entrée qui a causé le mauvais calcul |
La taille de l’en-tête du segment de pool est corrompue (elle est trop grande). |
0xA |
L’entrée de pool qui aurait dû être trouvée |
Reserved |
L’adresse virtuelle de la page qui aurait dû contenir l’entrée de pool |
La taille de l’en-tête du segment de pool est corrompue. |
0xD, 0xE, 0xF, 0x23, 0x24, 0x25 |
Réservé |
Réservé |
Réservé |
L’en-tête de pool d’un bloc libéré a été modifié après sa libération. Cela n’est généralement pas la faute de l’ancien propriétaire du bloc libéré; c’est généralement (mais pas toujours) dû à un dépassement du bloc précédant le bloc libéré. |
0x20 |
L’entrée de pool qui aurait dû être trouvée |
L’entrée de pool suivante |
Reserved |
La taille de l’en-tête du segment de pool est corrompue. |
0X21 |
Le pointeur de pool en cours de libération |
Le nombre d’octets alloués pour le segment de pool |
La valeur corrompue trouvée après le segment de pool |
Les données après le segment de pool en cours de libération sont corrompues. Cela signifie généralement que le consommateur (trace d’appels) a dépassé le bloc. |
0X22 |
L’adresse en cours de libération |
Réservé |
Réservé |
Une adresse en cours de libération n’a pas d’entrée de suivi. Cela est généralement dû au fait que la trace d’appels essaie de libérer un pointeur qui a soit déjà été libéré, soit n’a jamais été alloué en premier lieu. |
Cause
Le pool est déjà corrompu au moment de la demande actuelle.
Cela peut ou non être dû à l’appelant.
Résolution
Les liens internes du pool doivent être parcourus à l’aide du débogueur du noyau pour déterminer une cause possible du problème.
Ensuite, vous pouvez utiliser le pool spécial pour les étiquettes de pool suspectes, ou utiliser l’option « Special Pool » de Driver Verifier sur le pilote suspect. L’extension !analyze peut être utile pour identifier le pilote suspect, mais ce n’est souvent pas le cas avec les corrupteurs de pool.
Utilisez les étapes décrites dans Analyser les données d’écran bleu du bug check pour collecter les paramètres du code d’arrêt. Utilisez les paramètres du code d’arrêt pour déterminer le type spécifique de comportement de code que vous essayez de suivre.
Driver Verifier
Driver Verifier est un outil qui s’exécute en temps réel pour examiner le comportement des pilotes. S’il détecte 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 de vérification des pilotes est intégré à Windows et est disponible sur tous les PC Windows. Pour démarrer le gestionnaire de vérification des pilotes, tapez Verifier à l’invite de commande. Vous pouvez configurer les pilotes que vous souhaitez vérifier. Le code qui vérifie les pilotes ajoute une surcharge lorsqu’il s’exécute, donc essayez de vérifier le plus petit nombre possible de pilotes. Pour plus d’informations, consultez Type de débogage.
Diagnostics de mémoire Windows
Si cette vérification de bogue apparaît de manière incohérente, elle pourrait être liée à une mémoire physique défectueuse.
Exécutez l’outil de diagnostic de la mémoire Windows, pour tester la mémoire. Dans la zone de recherche du panneau de configuration, tapez Mémoire, puis sélectionnez Diagnostiquer les problèmes de mémoire de votre ordinateur. Après l’exécution du test, utilisez le Visualisateur d’événements pour afficher les résultats dans le journal Système. Recherchez l’entrée MemoryDiagnostics-Results pour afficher les résultats.