Partager via


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.