Vérification de bogue 0x76 : PROCESS_HAS_LOCKED_PAGES

Le contrôle de bogue PROCESS_HAS_LOCKED_PAGES a la valeur 0x00000076. Ce contrôle de bogue indique qu’un pilote n’a pas réussi à libérer les pages verrouillées après une opération d’e/s ou qu’il a tenté de déverrouiller des pages qui étaient déjà déverrouillées.

Important

Cette rubrique s’adresse aux développeurs. 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 PROCESS_HAS_LOCKED_PAGES

Paramètre 1 Paramètre 2 Paramètre 3 Paramètre 4 Cause de l’erreur

0x00

Pointeur vers l’objet processus

Nombre de pages verrouillées

Pointeur vers les piles de pilotes (si elles sont activées). Dans le cas contraire, ce paramètre est égal à zéro.

Le processus en cours d’arrêt a des pages mémoire verrouillées. Le pilote doit déverrouiller toute mémoire qu’il a peut-être verrouillée dans un processus, avant que le processus ne se termine.

0x01

MDL spécifié par le pilote

Nombre actuel de pages mémoire verrouillées dans ce processus

Pointeur vers les piles de pilotes pour ce processus (s’ils sont activés). Dans le cas contraire, ce paramètre est égal à zéro.

Le pilote tente de déverrouiller les pages de mémoire qui ne sont pas verrouillées.

Cause

Le pilote n’a pas pu déverrouiller les pages verrouillées (la valeur du paramètre 1 est 0x0), ou le pilote tente de déverrouiller des pages qui n’ont pas été verrouillées ou qui ont déjà été déverrouillées (la valeur du paramètre 1 est 0x1).

Résolution

L’extension ! analyze Debug affiche des informations sur la vérification des bogues et peut être utile pour déterminer la cause racine.

Si la valeur du paramètre 1 est 0x0

Utilisez d’abord l’extension ! Search sur le pointeur de processus actuel tout au long de la mémoire physique. Cette extension peut trouver au moins une liste de descripteurs de mémoire (MDL) qui pointe vers le processus en cours. Ensuite, utilisez ! Search sur chaque MDL que vous trouvez pour obtenir le paquet de requêtes d’e/s (IRP) qui pointe vers le processus en cours. À partir de cet IRP, vous pouvez identifier le pilote qui subit une fuite des pages.

Dans le cas contraire, vous pouvez détecter le pilote à l’origine de l’erreur en modifiant le registre :

  1. Dans la clé de Registre \ \ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management , créez ou modifiez la valeur TrackLockedPages , puis affectez-lui la valeur DWORD 1.

  2. Redémarrez l'ordinateur.

Le système enregistre ensuite les traces de pile, ce qui vous permet d’identifier facilement le pilote à l’origine du problème. Si le pilote provoque à nouveau la même erreur, la vérification de bogue 0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) est exécutée, et le nom du pilote qui provoque cette erreur s’affiche sur l’écran bleu et stocké dans la mémoire à l’emplacement (PUNICODE_STRING) KiBugCheckDriver.

Si la valeur du paramètre 1 est 0x1

Examinez le code source du pilote qui verrouille et déverrouille la mémoire et essayez de localiser une instance où la mémoire est déverrouillée sans d’abord être verrouillée.