Partager via


Vérificateur d’application - Codes d’arrêt - Divers

Les codes stop suivants sont contenus dans cet ensemble de tests.

Appel dangereux à TerminateThread.

Cause probable

Cet arrêt est généré si un thread (l’ID de thread est parameter1) est arrêté explicitement à l’aide de TerminateThread.Cette fonction est très dangereuse, car elle introduit une altération des données et des interblocages (conformément à MSDN).

Informations affichées par Application Verifier
  • Paramètre 1  - ID de thread pour l’appelant de Terminatethread.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  TERMINATE_THREAD_CALL
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Dépassement de capacité de la pile dans des conditions de mémoire insuffisantes.

Cause probable

Cet arrêt est généré si la taille de validation de la pile initiale d’un thread est telle qu’un dépassement de capacité de pile peut être déclenché dans des conditions de mémoire faible si la pile ne peut pas être étendue.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  STACK_OVERFLOW
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

ExitProcess appelé alors que plusieurs threads sont toujours en cours d’exécution.

Cause probable

Cet arrêt est généré si un thread appelle ExitProcess alors que plusieurs threads sont en cours d’exécution. Dans ce cas, TerminateThread est appelé en interne pour chaque thread, ce qui peut créer des interblocages ou des altérations de données.

Informations affichées par Application Verifier
  • Paramètre 1  - Nombre de threads en cours d’exécution.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_EXIT_PROCESS_CALL
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

LoadLibrary est appelé pendant DllMain.

Cause probable

Cet arrêt est généré si le code à l’intérieur de DllMain appelle LoadLibrary ou FreeLibary. Il s’agit du comportement interdit par MSDN.

Informations affichées par Application Verifier
  • Paramètre 1  - Nom de dll (utilisez du pour vidage).
  • Paramètre 2  - Dll adresse de base.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_LOAD_LIBRARY_CALL
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

FreeLibrary est appelé pendant DllMain.

Cause probable

Cet arrêt est généré si le code à l’intérieur de DllMain appelle LoadLibrary ou FreeLibary. Il s’agit du comportement interdit par MSDN.

Informations affichées par Application Verifier
  • Paramètre 1  - Nom de dll (utilisez du pour vidage).
  • Paramètre 2  - Dll adresse de base.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_FREE_LIBRARY_CALL
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

SetProcessWorkingSetSize est appelé avec MinimumWorkingSetSize = 0xFFFFFFFF.

Cause probable

Utilisez MinimumWorkingSetSize = (SIZE_T) -1.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_MINIMUM_PROCESS_WORKING_SIZE
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

SetProcessWorkingSetSize est appelé avec MaximumWorkingSetSize = 0xFFFFFFFF.

Cause probable

Utilisez MaximumWorkingSetSize = (SIZE_T) -1.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_MAXIMUM_PROCESS_WORKING_SIZE
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

SetProcessWorkingSetSizeEx est appelé avec MinimumWorkingSetSize = 0xFFFFFFFF.

Cause probable

Utilisez MinimumWorkingSetSize = (SIZE_T) -1.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

SetProcessWorkingSetSizeEx est appelé avec MaximumWorkingSetSize = 0xFFFFFFFF.

Cause probable

Utilisez MaximumWorkingSetSize = (SIZE_T) -1.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Dangereux
  • ID d’arrêt :  INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
  • Arrêter le code :  100NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Le thread ne peut pas posséder une section critique.

Cause probable

Cet arrêt est généré si un thread (l’ID de thread est parameter1) est arrêté, suspendu ou est dans un état (le thread de travail a terminé un élément de travail) dans lequel il ne peut pas contenir une section critique. Le thread actuel est le coupable. Pour déboguer cet arrêt, utilisez les commandes de débogueur suivantes : $ kb - pour obtenir la trace de pile actuelle. Si le thread actuel est le propriétaire de la section critique, il appelle probablement ExitThread. Le thread actuel doit avoir publié la section critique avant de quitter. Si le thread actuel appelle TerminateThread ou SuspendThread, il ne doit pas le faire pour un thread contenant une section critique. $ !cs -s parameter2 - informations de vidage sur cette section critique. $ ln parameter2 : pour afficher les symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique qui a fait l’objet d’une fuite. $ dps parameter4 : pour vider la trace de pile pour cette initialisation de section critique.

Informations affichées par Application Verifier
  • Paramètre 1  - ID de thread.
  • Paramètre 2  - Adresse de section critique.
  • Paramètre 3  - Adresse des informations de débogage de section critique.
  • Paramètre 4  - Suivi de la pile d’initialisation de section critique.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  EXIT_THREAD_OWNS_LOCK
  • Arrêter le code :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Déchargement d’une DLL contenant une section critique active.

Cause probable

Cet arrêt est généré si une DLL a une variable globale contenant une section critique et si la DLL est déchargée, mais que la section critique n’a pas été supprimée. Pour déboguer cet arrêt, utilisez les commandes de débogueur suivantes : $ du parameter3 - pour vider le nom de la DLL coupable. $ .reload dllname ou .reload dllname = parameter4 : pour recharger les symboles de cette DLL. $ !cs -s parameter1 - informations de vidage sur cette section critique. $ ln parameter1 : pour afficher les symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique qui a fait l’objet d’une fuite. $ dps parameter2 : pour vider la trace de pile pour cette initialisation de section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Trace de pile d’initialisation de section critique.
  • Paramètre 3  - Adresse du nom de LA DLL.
  • Paramètre 4  - ADRESSE de base DLL.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_IN_UNLOADED_DLL
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Libérer un bloc de tas contenant une section critique active.

Cause probable

Cet arrêt est généré si une allocation de tas contient une section critique, si l’allocation est libérée et si la section critique n’a pas été supprimée. Pour déboguer cet arrêt, utilisez les commandes de débogueur suivantes : $ !cs -s parameter1 - informations de vidage sur cette section critique. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela devrait aider à identifier la section critique divulguée. $ dps parameter2 : pour vider la trace de pile pour cette initialisation de section critique. $ parameter3 et parameter4 peuvent aider à comprendre où ce bloc de tas a été alloué (la taille de l’allocation est probablement significative).

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Trace de pile d’initialisation de section critique.
  • Paramètre 3  - Adresse de bloc de tas.
  • Paramètre 4  -Taille  du bloc de tas.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_IN_FREED_HEAP
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Section critique à double initialisation ou endommagée.

Cause probable

En règle générale, cet arrêt est généré si une section critique a été initialisée plusieurs fois. Dans ce cas, parameter3 et parameter4 sont les adresses de trace de pile pour deux de ces initialisations. Dans d’autres cas, il est possible d’obtenir cet arrêt si la section critique ou sa structure d’informations de débogage ont été endommagées. Dans ce deuxième cas, il est possible que parameter3 et parameter4 ne soient pas valides et inutiles. Pour déboguer cet arrêt : $ !cs -s -d parameter2 - vidage des informations sur cette section critique. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela peut aider à identifier la section critique s’il s’agit d’une variable globale. $ dps parameter3 et dps parameter4 : pour identifier les deux chemins de code pour l’initialisation de cette section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Adresse de la structure d’informations de débogage trouvée dans la liste active.
  • Paramètre 3  - Première trace de pile d’initialisation.
  • Paramètre 4  - Deuxième trace de pile d’initialisation.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_DOUBLE_INITIALIZE
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Mémoire libre contenant une section critique active.

Cause probable

Cet arrêt est généré si la mémoire contenant une section critique a été libérée, mais que la section critique n’a pas été supprimée à l’aide de DeleteCriticalSection. Pour déboguer cet arrêt, utilisez les commandes de débogueur suivantes : $ !cs -s -d parameter2 - informations de vidage sur cette section critique. $ dps parameter3 : pour identifier le chemin du code pour l’initialisation de cette section critique. Dans la plupart des cas, le vérificateur de verrou détecte les sections critiques immédiatement divulguées contenues dans une allocation de tas, une plage DE DLL, une allocation de mémoire virtuelle ou une plage de mémoire mappée MapViewOfFile et émet différents arrêts dans ces cas. Il reste donc très peu de cas pour cet arrêt de vérificateur. Le verrou doit se trouver dans une plage de mémoire libérée par le code en mode noyau ou libérée entre processus par des API telles que VirtualFreeEx. Généralement, cet arrêt se produit si un arrêt précédent (par exemple, LOCK_IN_FREED_HEAP ou LOCK_IN_UNLOADED_DLL) a été poursuivi en appuyant sur « g » dans la console du débogueur.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Adresse des informations de débogage de section critique.
  • Paramètre 3  - Trace de pile d’initialisation de section critique.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_IN_FREED_MEMORY
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Section critique endommagée.

Cause probable

Cet arrêt est généré si le champ DebugInfo de la section critique pointe vers la mémoire libérée. En règle générale, une autre structure DebugInfo valide se trouve dans la liste des sections critiques actives. Sans altération, les deux pointeurs doivent être identiques. Pour déboguer cet arrêt, utilisez les commandes de débogueur suivantes : $ !cs -s -d parameter3 - vidage d’informations sur cette section critique en fonction du contenu actuel de la structure d’informations de débogage trouvée dans la liste active (cette structure est rarement endommagée, donc généralement, ces informations sont fiables). $ !cs -s parameter1 - vidage d’informations sur cette section critique en fonction du contenu actuel de la structure de section critique (la structure est déjà endommagée. Parfois, ces informations ne sont PAS dignes de confiance). $ dps parameter4 : pour identifier le chemin du code pour l’initialisation de cette section critique. Videz la section critique sur address parameter1 et recherchez le modèle d’endommagement. Avec de bons symboles pour ntdll.dl, vous pouvez utiliser les commandes suivantes : $ dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS $ dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Adresse d’informations de débogage non valide de cette section critique.
  • Paramètre 3  - Adresse des informations de débogage trouvées dans la liste active.
  • Paramètre 4  - Trace de pile d’initialisation.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_CORRUPTED
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Thread de propriétaire de section critique non valide.

Cause probable

Cet arrêt est généré si l’ID de thread propriétaire n’est pas valide dans le contexte actuel. Pour déboguer ce stop : $ !cs -s parameter1 - dump information about this critical section. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Propriétaire du thread.
  • Paramètre 3  - Thread propriétaire attendu.
  • Paramètre 4  - Adresse d’informations de débogage de section critique.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_INVALID_OWNER
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Nombre de récursivités de section critique non valide.

Cause probable

Cet arrêt est généré si le champ nombre de récursivités de la structure de section critique n’est pas valide dans le contexte actuel. Pour déboguer ce stop : $ !cs -s parameter1 - dump information about this critical section. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Nombre de récursivités.
  • Paramètre 3  - Nombre de récursivités attendues.
  • Paramètre 4  - Adresse d’informations de débogage de section critique.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_INVALID_RECURSION_COUNT
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Suppression de la section critique avec un nombre de verrous non valide.

Cause probable

Cet arrêt est généré si une section critique appartient à un thread si elle est supprimée ou si la section critique est non initialisée. Pour déboguer ce stop : $ !cs -s parameter1 - dump information about this critical section. Si le thread propriétaire est 0, la section critique n’a pas été initialisée. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Nombre de verrous.
  • Paramètre 3  - Nombre de verrous attendu.
  • Paramètre 4  - Propriétaire du thread.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_INVALID_LOCK_COUNT
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Section critique sur-libérée ou endommagée.

Cause probable

Cet arrêt est généré si une section critique est publiée plus de fois que le thread actuel l’a acquise. Pour déboguer ce stop : $ !cs -s parameter1 - dump information about this critical section. $ !cs -s -d parameter4 - vidage des informations sur cette section critique. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Nombre de verrous.
  • Paramètre 3  - Nombre de verrous attendu.
  • Paramètre 4  - Adresse d’informations de débogage de section critique.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_OVER_RELEASED
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Section critique non initialisée.

Cause probable

Cet arrêt est généré si une section critique est utilisée sans être initialisée ou après sa suppression. Pour déboguer ce stop : $ ln parameter1 - pour afficher les symboles près de l’adresse de la section critique. Cela devrait vous aider à identifier la section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Adresse d’informations de débogage de section critique.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_NOT_INITIALIZED
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

La section critique est déjà initialisée.

Cause probable

Cet arrêt est généré si une section critique est réinitialisée par le thread actuel. Pour déboguer ce arrêt : $ !cs -s parameter1 ou !cs -s -d parameter2 - dump information about this critical section. $ ln parameter1 : pour afficher des symboles près de l’adresse de la section critique. Cela peut aider à identifier la section critique s’il s’agit d’une variable globale. $ dps parameter3 : pour identifier le chemin du code pour la première initialisation de cette section critique. $ kb : pour afficher la trace de pile actuelle, qui réinitialise cette section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Adresse d’informations de débogage de section critique.
  • Paramètre 3  - Première trace de pile d’initialisation. Utiliser dps pour le vider s’il n’est pas NULL
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_ALREADY_INITIALIZED
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Libérer de la mémoire virtuelle contenant une section critique active.

Cause probable

Cet arrêt est généré si le thread actuel appelle VirtualFree sur un bloc de mémoire qui contient une section critique active. L’application doit appeler DeleteCriticalSection sur cette section critique avant si libère cette mémoire. $ kb : pour afficher la trace de pile actuelle, qui appelle VirtualFree. Le coupable probable est la DLL qui appelle VirtualFree. $ !cs -s parameter1 : informations de vidage sur cette section critique. $ dps parameter2 : pour identifier le chemin du code pour l’initialisation de cette section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Trace de pile d’initialisation de section critique.
  • Paramètre 3  - Adresse du bloc de mémoire.
  • Paramètre 4  - Taille du bloc de mémoire.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_IN_FREED_VMEM
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Démappage de la région de mémoire contenant une section critique active.

Cause probable

Cet arrêt est généré si le thread actuel appelle UnmapViewOfFile sur un bloc de mémoire qui contient une section critique active. L’application doit appeler DeleteCriticalSection sur cette section critique avant si annule le mappage de cette mémoire. $ kb : pour afficher la trace de pile actuelle, qui appelle UnmapViewOfFile . Le coupable probable est la DLL qui appelle UnmapViewOfFile. $ !cs -s parameter1 : informations de vidage sur cette section critique. $ dps parameter2 : pour identifier le chemin du code pour l’initialisation de cette section critique.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Trace de pile d’initialisation de section critique.
  • Paramètre 3  - Adresse du bloc de mémoire.
  • Paramètre 4  - Taille du bloc de mémoire.

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_IN_UNMAPPED_MEM
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le thread actuel ne possède aucune section critique.

Cause probable

Cet arrêt est généré si le thread actuel appelle LeaveCriticalSection, mais que, selon la comptabilité du vérificateur interne, il ne possède aucune section critique. Si parameter2 est égal à zéro, il s’agit probablement d’un bogue dans le thread actuel. Il tente soit de laisser une section critique qu’il n’a pas entrée, soit il appelle Peut-être LeaveCriticalSection plus de fois qu’il a appelé EnterCriticalSection pour la même section critique. Si parameter2 n’est pas égal à zéro (il s’agit d’un nombre entier négatif), les structures de données du vérificateur interne sont probablement endommagées.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  -  Nombre de sections critiques appartenant au thread actuel.
  • Paramètre 3  - Non utilisé
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  THREAD_NOT_LOCK_OWNER
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Utilisation de la section critique qui est privée à une autre DLL.

Cause probable

Cet arrêt est généré si le thread actuel tente d’utiliser un verrou privé qui se trouve à l’intérieur d’une autre DLL. Par exemple, a.dll tente d’entrer une section critique définie dans ntdll.dll. Les verrous privés ne peuvent pas être utilisés sur les DLL.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de section critique.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  Serrures
  • ID d’arrêt :  LOCK_PRIVATE
  • Code d’arrêt :  200NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le verrou SRW n’est pas initialisé.

Cause probable

Cet arrêt est généré si un thread tente d’utiliser le verrou SRW (Param1) qui n’est pas initialisé. $ kb : pour obtenir la trace de pile actuelle. C’est là que le verrou SRW est utilisé. Le verrou SRW doit être initialisé à l’aide de InitializeSRWLock avant de pouvoir être utilisé.

Informations affichées par application Verifier
  • Paramètre 1  - SRW Lock
  • Paramètre 2  - Non utilisé
  • Paramètre 3  - Non utilisé
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  NOT_INITIALIZED
  • Code d’arrêt :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le verrou SRW est déjà initialisé.

Cause probable

Cet arrêt est généré si le verrou SRW (Param1) est réin initialisé. Si le verrou SRW est activement utilisé par d’autres threads, la réin initialisation du verrou entraîne un comportement imprévisible de la part de l’application, y compris des blocages et des blocages. La trace de la pile d’initialisation peut indiquer une acquisition si le verrou SRW a été initialisé de manière statique. $ kb : pour obtenir la trace de pile actuelle. C’est là que le verrou SRW est réin initialisé. $ dps Param3 : pour obtenir la trace de la pile d’initialisation de verrou SRW. Cette trace de pile peut afficher une acquisition si le verrou a été initialisé de manière statique.

Informations affichées par application Verifier
  • Paramètre 1  - SRW Lock
  • Paramètre 2  - ThreadId du thread qui a initialisé le verrou SRW.
  • Paramètre 3  - Adresse de la trace de la pile d’initialisation. Utilisez l’adresse> dps <pour voir où le verrou SRW a été initialisé.
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  ALREADY_INITIALIZED
  • Code d’arrêt :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Des Acquire-Release incompatibles sur le verrou SRW.

Cause probable

Cet arrêt est généré si le verrou SRW (Param1) est libéré avec une API de mise en production incorrecte. Si le verrou SRW a été acquis pour l’accès partagé et est en cours de publication à l’aide de l’API de mise en production exclusive ou si le verrou SRW a été acquis pour l’accès exclusif et est en cours de publication à l’aide de l’API de mise en production partagée. Cela peut entraîner un comportement imprévisible de l’application, y compris des blocages et des plantages. $ kb : pour obtenir la trace de pile actuelle. C’est là que le verrou SRW est libéré à l’aide de la mauvaise API. $ dps Param3 : pour obtenir la trace de pile d’acquisition du verrou SRW.

Informations affichées par application Verifier
  • Paramètre 1  - SRW Lock
  • Paramètre 2  - ThreadId du thread qui a acquis le verrou SRW.
  • Paramètre 3  - Adresse de la trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  MISMATCHED_ACQUIRE_RELEASE
  • Code d’arrêt :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le verrou SRW est acquis de manière récursive par le même thread.

Cause probable

Cet arrêt est généré si le verrou SRW (Param1) est acquis de manière récursive par le même thread. Cela entraîne un interblocage et le thread se bloque indéfiniment. L’acquisition récursive d’un verrou SRW en mode exclusif entraîne un blocage. L’acquisition récursive d’un verrou SRW en mode partagé entraîne un interblocage lorsqu’un thread attend un accès exclusif. Prenons l’exemple ci-dessous : - Le thread A acquiert le verrou SRW en mode partagé - Le thread B tente d’acruire le verrou SRW en mode exclusif et attend - Le thread A tente d’acquérir le verrou SRW en mode partagé de manière récursive. Cette opération réussit tant qu’il n’y a pas de serveur exclusif (dans ce cas B). Étant donné que les verrous SRW n’ont pas de pénurie d’enregistreur, le thread A attend derrière le thread B. À présent, le thread B attend le thread A qui attend le thread B, ce qui provoque une attente circulaire et donc un interblocage. $ kb : pour obtenir la trace de pile actuelle. C’est là que le verrou SRW est acquis de manière récursive. $ dps Param2 : pour obtenir la trace de la pile pour la première acquisition.

Informations affichées par application Verifier
  • Paramètre 1  - SRW Lock
  • Paramètre 2  - Adresse de la première trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.
  • Paramètre 3  - Non utilisé
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  RECURSIVE_ACQUIRE
  • Arrêter le code :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Le thread qui quitte ou se termine possède un verrou SRW.

Cause probable

Cet arrêt est généré si le thread (Param2) qui possède le verrou SRW (Param1) quitte ou se termine. Cela entraîne un verrou SRW orphelin et les threads qui tentent d’acquérir ce verrou se bloquent indéfiniment. $ kb : pour obtenir la trace de pile actuelle. C’est là que le thread quitte ou est en cours d’arrêt. $ dps Param3 : pour obtenir le verrou SRW acquérir la trace de pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Verrou SRW
  • Paramètre 2  - ThreadId du thread qui quitte ou se termine.
  • Paramètre 3  - Adresse de la trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  EXIT_THREAD_OWNS_LOCK
  • Arrêter le code :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Le verrou SRW libéré n’a pas été acquis par ce thread.

Cause probable

Cet arrêt est généré si le verrou SRW (Param1) est libéré par le thread (Param2) qui n’a pas acquis le verrou. Cela représente une mauvaise pratique de programmation qui est difficile à obtenir correctement et peut entraîner un comportement imprévisible de la part de l’application. $ kb : pour obtenir la trace de pile actuelle. C’est là que le thread libère le verrou SRW qu’il n’a pas acquis. $ dps Param4 : pour obtenir le verrou SRW acquérir la trace de pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Verrou SRW
  • Paramètre 2  - Current ThreadId.
  • Paramètre 3  - ThreadId du thread qui a acquis le verrou SRW.
  • Paramètre 4  - Adresse de la trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  INVALID_OWNER
  • Arrêter le code :  250NAN
  • Gravité:  Avertissement
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Aucun
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

La mémoire libérée contient un verrou SRW actif.

Cause probable

Cet arrêt est généré si l’adresse mémoire (Param1) libérée contient un verrou SRW actif qui est toujours en cours d’utilisation. Cela peut entraîner un comportement imprévisible de l’application, y compris des blocages et des blocages. $ kb : pour obtenir la trace de pile actuelle. C’est là que la mémoire est libérée qui contient un verrou SRW actif. $ dps Param4 : pour obtenir le verrou SRW acquérir la trace de pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Verrou SRW
  • Paramètre 2  - Adresse de la mémoire libérée.
  • Paramètre 3  - ThreadId du thread qui a acquis le verrou SRW.
  • Paramètre 4  - Adresse de la trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  IN_FREED_MEMORY
  • Arrêter le code :  250NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

La DLL en cours de déchargement contient un verrou SRW actif.

Cause probable

Cet arrêt est généré si la DLL en cours de déchargement (Param2) contient un verrou SRW actif (Param1) qui est toujours en cours d’utilisation. Cela peut entraîner un comportement imprévisible de l’application, y compris des blocages et des blocages. $ kb : pour obtenir la trace de pile actuelle. C’est là que la DLL est déchargée qui contient un verrou SRW actif. $ du Param2 : pour rechercher le nom de la DLL en cours de déchargement. $ dps Param4 : pour obtenir le verrou SRW acquérir la trace de pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Verrou SRW
  • Paramètre 2  - Adresse du nom de la DLL en cours de déchargement. Utilisez du <address> pour voir le nom.
  • Paramètre 3  - ThreadId du thread qui a acquis le verrou SRW.
  • Paramètre 4  - Adresse de la trace de pile d’acquisition. Utilisez l’adresse> dps <pour voir où le verrou SRW a été acquis.

Informations supplémentaires
  • Couche de test :  SRWLock
  • ID d’arrêt :  IN_UNLOADED_DLL
  • Arrêter le code :  250NAN
  • Gravité:  Avertissement
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Aucun
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Exception de handle non valide pour la trace de pile actuelle.

Cause probable

Cet arrêt est généré si la fonction située en haut de la pile a transmis un handle non valide aux routines système. En règle générale, une simple commande kb indique quelle est la valeur du handle passé (doit être l’un des paramètres , généralement le premier). Si la valeur est null, cela est clairement incorrect. Si la valeur semble correcte, vous devez utiliser l’extension de débogueur !htrace pour obtenir un historique des opérations relatives à cette valeur de handle. Dans la plupart des cas, la valeur de handle doit être utilisée après avoir été fermée.

Informations affichées par Application Verifier
  • Paramètre 1  - Code d’exception.
  • Paramètre 2  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 3  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  INVALID_HANDLE
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Index TLS non valide utilisé pour la trace de pile actuelle.

Cause probable

Cet arrêt est généré si la fonction située en haut de la pile a transmis un index TLS non valide aux routines système TLS. En général, une simple commande kb révèle ce qui ne va pas. Le bogue typique ici consiste à supposer une certaine valeur pour un index TLS au lieu d’appeler TlsAlloc. Cela peut se produire en pensant que vous obtenez toujours la valeur N, il n’est donc pas nécessaire d’appeler TlsAlloc ou plus fréquemment en raison d’une variable non initialisée.

Informations affichées par Application Verifier
  • Paramètre 1  - Index TLS non valide.
  • Paramètre 2  - Partie inférieure attendue de l’index.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  INVALID_TLS_VALUE
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Paramètres non valides pour l’appel WaitForMultipleObjects.

Cause probable

Cet arrêt est généré si la fonction située en haut de la pile appelée WaitForMultipleObjects a NULL comme adresse du tableau de handles à attendre ou avec zéro comme nombre de handles. Une simple commande kb révèle la fonction appelant cette API de manière incorrecte.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse du vecteur de handles d’objet.
  • Paramètre 2  - Nombre de handles.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  INCORRECT_WAIT_CALL
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Handle NULL passé en tant que paramètre. Un handle valide doit être utilisé.

Cause probable

Cet arrêt est généré si la fonction située en haut de la pile a passé un handle NULL aux routines système.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  NULL_HANDLE
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

En attente d’un handle de thread dans DllMain.

Cause probable

Cet arrêt est généré si le thread actuel exécute actuellement du code à l’intérieur de la fonction DllMain de l’une des DLL chargées dans le processus en cours et qu’il appelle WaitForSingleObject ou WaitForMultipleObjects pour attendre sur un handle de thread dans le même processus. Cela entraînerait probablement un blocage, car le handle de thread n’est pas signalé, sauf si ce deuxième thread est en cours de fermeture. Lorsque le deuxième thread appelle ExitThread, il tente d’acquérir le verrou du chargeur DLL, puis appelle DllMain (DLL_THREAD_DETACH) pour toutes les DLL du processus actuel. Mais le verrou du chargeur appartient au premier thread (celui qui attend sur la poignée de thread) de sorte que les deux threads se bloquent.

Informations affichées par Application Verifier
  • Paramètre 1  - Handle de thread.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  WAIT_IN_DLLMAIN
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Type d’objet incorrect pour handle.

Cause probable

Cet arrêt est généré si le thread actuel appelle une API avec un handle à un objet avec un type d’objet incorrect. Par exemple, l’appel de SetEvent avec un handle sémaphore en tant que paramètre génère cet arrêt. Pour déboguer ce stop : $ kb - pour afficher la trace de pile actuelle. Le coupable est probablement la DLL qui appelle dans verifier.dll ; $ du parameter2 : pour afficher le type réel du handle. La valeur du handle est parameter1. Dans l’exemple ci-dessus, cela s’affiche : Sémaphore. $ du parameter3 : pour afficher le type d’objet attendu par l’API. Dans l’exemple ci-dessus, ce nom sera : Événement. $ !htrace parameter1 peut être utile, car il affiche la trace de pile pour les opérations d’ouverture/fermeture récentes sur ce handle.

Informations affichées par Application Verifier
  • Paramètre 1  - Handle value.
  • Paramètre 2  - Nom du type d’objet. Utilisez du pour l’afficher
  • Paramètre 3  - Nom du type d’objet attendu. Utilisez du pour l’afficher
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Poignées
  • ID d’arrêt :  INCORRECT_OBJECT_TYPE
  • Arrêter le code :  300NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Déchargement de la DLL qui a alloué un index TLS qui n’a pas été libéré.

Cause probable

Cet arrêt est généré si une DLL qui a alloué un index TLS est déchargée avant de libérer cet index TLS. Pour déboguer ce stop : $ du parameter3 - afficher le nom de la DLL coupable ; $ .reload xxx.dll=parameter4 - rechargez les symboles de la DLL coupable (si nécessaire). xxx.dll est le nom de la DLL affichée à l’étape ci-dessus ; $ u parameter2 : désassemblez le code qui a alloué le protocole TLS. Cela doit pointer vers la fonction qui a alloué le PROTOCOLE TLS, mais oublié de le libérer avant que la DLL ne soit déchargée.

Informations affichées par Application Verifier
  • Paramètre 1  - Index TLS
  • Paramètre 2  - Adresse du code qui a alloué cet index TLS.
  • Paramètre 3  Adresse du nom - DLL. Utilisez du pour le vider.
  • Paramètre 4  - DLL adresse de base.

Informations supplémentaires
  • Couche de test :  TLS
  • ID d’arrêt :  TLS_LEAK
  • Arrêter le code :  350NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Structure TLS du vérificateur endommagé.

Cause probable

Cet arrêt est généré si les structures de vérificateur interne utilisées pour stocker l’état des emplacements TLS pour le thread sont endommagées. Très probablement, cela est dû à une corruption aléatoire dans le processus.

Informations affichées par Application Verifier
  • Paramètre 1  - ADRESSE TEB.
  • Paramètre 2  - Adresse TEB attendue.
  • Paramètre 3  - ID de thread.
  • Paramètre 4  - ID de thread attendu.

Informations supplémentaires
  • Couche de test :  TLS
  • ID d’arrêt :  CORRUPTED_TLS
  • Arrêter le code :  350NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Utilisation d’un index TLS non valide.

Cause probable

Cet arrêt est généré si un index TLS non valide est utilisé. Dans la plupart des cas, c’est parce que le code utilise toujours cet index lorsque TlsFree est appelé. Voici un exemple pour le thread thread threadpool. T1 : Chargements de dll et TlsAlloc T1 : Rappel de file d’attente T1 : Rappel ignoré/annulé T1 : TlsFree T2 : Le rappel s’exécute et appelle TlsSetValue T1 : Déchargements de dll

Informations affichées par Application Verifier
  • Paramètre 1  - Index TLS
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  TLS
  • ID d’arrêt :  INVALID_TLS_INDEX
  • Arrêter le code :  350NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Libération d’un bloc de mémoire virtuelle dont la taille ou l’adresse de début n’est pas valide.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un déchargement VirtualFree ou DLL avec une adresse de début ou une taille de l’allocation de mémoire non valide. Dans le cas du déchargement de DLL, cela signifie probablement une altération de la mémoire à l’intérieur de la liste de DLL chargée. Pour déboguer cet arrêt, examinez la trace de la pile actuelle, l’adresse mémoire et la taille qui sont sur le point d’être libérées, puis essayez de déterminer pourquoi elles ne sont pas valides.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de base d’allocation.
  • Paramètre 2  - Taille de la région mémoire.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_FREEMEM
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Appel d’alloc virtuel incorrect.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel VirtualAlloc avec une adresse de début ou une taille non valide de l’allocation de mémoire. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et l’adresse de mémoire et la taille qui sont sur le point d’être allouées, puis essayez de déterminer pourquoi elles ne sont pas valides.

Informations affichées par Application Verifier
  • Paramètre 1  - Pointeur vers l’adresse de base d’allocation.
  • Paramètre 2  - Pointeur vers la taille de la région mémoire.
  • Paramètre 3  - Non utilisé
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_ALLOCMEM
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Appel de vue de carte incorrect.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel MapViewOfFile avec une adresse de base ou une taille non valide du mappage. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) ainsi que l’adresse mémoire et la taille qui sont sur le point d’être mappées, puis essayez de déterminer pourquoi elles ne sont pas valides.

Informations affichées par Application Verifier
  • Paramètre 1  - Pointeur vers l’adresse de base de mappage.
  • Paramètre 2  - Pointeur vers la taille d’affichage.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_MAPVIEW
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Sondage d’adresse non valide.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel IsBadXXXPtr avec une adresse non valide (par exemple, une adresse en mode noyau, au lieu d’une adresse en mode utilisateur normale) pour que la mémoire tampon soit sondée. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de déterminer pourquoi l’appelant de la fonction IsBadXXXPtr s’est retrouvé avec une adresse non valide. Souvent, l’adresse est un faux simple, par exemple un pointeur non initialisé. La bibliothèque MSDN répertorie quelques raisons pour lesquelles les applications ne doivent pas utiliser les API IsBadXXXPtr : Dans un environnement multitâche préemptif, il est possible pour un autre thread de modifier l’accès du processus à la mémoire testée. Le déréférencement des pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’extension de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Les threads d’un processus sont censés coopérer de telle sorte que l’un d’eux ne libère pas la mémoire dont l’autre a besoin. L’utilisation de cette fonction n’annule pas la nécessité de le faire. Si ce n’est pas le cas, l’application peut échouer de manière imprévisible. Pour toutes ces raisons, nous vous recommandons de ne jamais utiliser ces API.

Informations affichées par Application Verifier
  • Paramètre 1  -Adresse de  début.
  • Paramètre 2  - Taille du bloc de mémoire.
  • Paramètre 3  - Adresse non valide.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_INVALID_ADDRESS
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Sondage de la mémoire libre.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel IsBadXXXPtr pour une allocation de mémoire gratuite. C’est très mauvais, car il est possible que, dans d’autres cas, cette mémoire ait déjà été réutilisée pour une autre allocation. Étant donné que le chemin de code actuel (ko) ne possède pas cette mémoire, il peut finir par endommager la mémoire d’une autre personne, avec des effets désastreux. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de déterminer pourquoi l’appelant de la fonction IsBadXXXPtr a fini par sonder la mémoire libre. L’adresse peut être fausse (par exemple, pointeur non initialisé) ou peut-être déjà libérée de la mémoire. Si la mémoire a déjà été libérée par l’une des API VirtualFree ou UnmapViewOfFile, '!avrf -vs -a parameter3' recherche un journal des traces de pile des chemins de code qui ont alloué/libéré cette adresse et affiche ces traces de pile si elles sont disponibles. Cela peut indiquer la trace de pile qui a libéré cette mémoire. Plus souvent, la mémoire est une allocation de tas déjà libérée. Pour case activée cette possibilité, « !avrf -hp -a parameter3 » recherche un journal des traces de pile des chemins d’accès de code qui ont alloué/libéré cette adresse du tas et affiche ces traces de pile si elles sont disponibles. La bibliothèque MSDN répertorie quelques raisons pour lesquelles les applications ne doivent pas utiliser les API IsBadXXXPtr : Dans un environnement multitâche préemptif, il est possible pour un autre thread de modifier l’accès du processus à la mémoire testée. Le déréférencement des pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’extension de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Les threads d’un processus sont censés coopérer de telle sorte que l’un d’eux ne libère pas la mémoire dont l’autre a besoin. L’utilisation de cette fonction n’annule pas la nécessité de le faire. Si ce n’est pas le cas, l’application peut échouer de manière imprévisible. Pour toutes ces raisons, nous vous recommandons de ne jamais utiliser ces API.

Informations affichées par Application Verifier
  • Paramètre 1  -Adresse de  début.
  • Paramètre 2  - Taille du bloc de mémoire.
  • Paramètre 3  - Adresse de la page de mémoire libre.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_FREE_MEM
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Sondage d’une page de protection.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel IsBadXXXPtr pour une allocation de mémoire qui contient au moins une GUARD_PAGE. C’est très mauvais, car il est très possible que cette GUARD_PAGE soit la fin de la pile actuelle d’un thread. Comme indiqué dans la bibliothèque MSDN : le déréférencement de pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’expansion de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de déterminer pourquoi l’appelant de la fonction IsBadXXXPtr a fini par sonder un GUARD_PAGE. La bibliothèque MSDN répertorie quelques raisons pour lesquelles les applications ne doivent pas utiliser les API IsBadXXXPtr : Dans un environnement multitâche préemptif, il est possible qu’un autre thread modifie l’accès du processus à la mémoire testée. Le déréférencement de pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’expansion de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Les threads d’un processus sont censés coopérer de telle sorte que l’un ne libère pas la mémoire dont l’autre a besoin. L’utilisation de cette fonction n’annule pas la nécessité de le faire. Si ce n’est pas le cas, l’application peut échouer de manière imprévisible. Pour toutes ces raisons, nous vous recommandons de ne jamais utiliser ces API.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de début.
  • Paramètre 2  - Taille du bloc de mémoire.
  • Paramètre 3  - Adresse de la page de garde.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_GUARD_PAGE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Sondage de l’adresse NULL.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel IsBadXXXPtr avec une adresse NULL. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de déterminer pourquoi l’appelant de la fonction IsBadXXXPtr s’est retrouvé avec l’adresse NULL. Il s’agit généralement du signe que quelqu’un ne vérifie pas la valeur de retour de l’une des fonctions d’allocation de mémoire. Par exemple, le code ci-dessous est incorrect : int main (void) { PVOID p; p = malloc (1024) ; Utiliser (p); retourner 0 ; } void Use (PVOID p) { if (IsBadReadPtr (p)) { return; } // // p peut être utilisé ici. } Ce code doit être réécrit comme suit : int main (void) { PVOID p; p = malloc (1024); if (NULL == p)) { return -1; } Utiliser (p); retourner 0 ; } void Use (PVOID p) { // // p peut être utilisé ici. } La bibliothèque MSDN répertorie quelques raisons pour lesquelles les applications ne doivent pas utiliser les API IsBadXXXPtr : Dans un environnement multitâche préemptif, il est possible qu’un autre thread modifie l’accès du processus à la mémoire testée. Le déréférencement de pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’expansion de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Les threads d’un processus sont censés coopérer de telle sorte que l’un ne libère pas la mémoire dont l’autre a besoin. L’utilisation de cette fonction n’annule pas la nécessité de le faire. Si ce n’est pas le cas, l’application peut échouer de manière imprévisible. Pour toutes ces raisons, nous vous recommandons de ne jamais utiliser ces API.

Informations affichées par application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_NULL
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Détection d’un bloc de mémoire avec une adresse ou une taille de début non valide.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel IsBadXXXPtr avec une adresse de début non valide (par exemple, une adresse en mode noyau, au lieu d’une adresse en mode utilisateur normal) ou une taille non valide pour la mémoire tampon à sonder. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de déterminer pourquoi l’appelant de la fonction IsBadXXXPtr s’est retrouvé avec une adresse ou une taille non valides. Souvent, l’adresse ou la taille sont simples, par exemple une variable non initialisée. La bibliothèque MSDN répertorie quelques raisons pour lesquelles les applications ne doivent pas utiliser les API IsBadXXXPtr : Dans un environnement multitâche préemptif, il est possible qu’un autre thread modifie l’accès du processus à la mémoire testée. Le déréférencement de pointeurs potentiellement non valides peut désactiver l’expansion de la pile dans d’autres threads. Un thread qui épuise sa pile, lorsque l’expansion de la pile a été désactivée, entraîne l’arrêt immédiat du processus parent, sans fenêtre d’erreur contextuelle ni informations de diagnostic. Les threads d’un processus sont censés coopérer de telle sorte que l’un ne libère pas la mémoire dont l’autre a besoin. L’utilisation de cette fonction n’annule pas la nécessité de le faire. Si ce n’est pas le cas, l’application peut échouer de manière imprévisible. Pour toutes ces raisons, nous vous recommandons de ne jamais utiliser ces API.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de début.
  • Paramètre 2  - Taille du bloc de mémoire.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_INVALID_START_OR_SIZE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Déchargement d’une DLL dont la taille ou l’adresse de début n’est pas valide.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un déchargement de DLL avec une adresse de début ou une taille de la plage de mémoire DLL non valide. Cela signifie probablement une altération de la mémoire à l’intérieur de la liste des DLL chargées ntdll.dll interne.

Informations affichées par application Verifier
  • Paramètre 1  - ADRESSE de base de la mémoire DLL.
  • Paramètre 2  - Taille de la plage de mémoire DLL.
  • Paramètre 3  - Adresse du nom de LA DLL. Utilisez du pour le vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_DLL_RANGE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Libération du bloc de mémoire à l’intérieur de la plage d’adresses de pile du thread actuel.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un VirtualFree pour un bloc de mémoire qui fait en fait partie de la pile du thread actuel (!). Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de comprendre pourquoi la fonction qui a appelé VirtualFree a pensé que le bloc de mémoire a été alloué ou mappé dynamiquement, mais qu’il s’agissait en fait de la mémoire allouée à partir de la pile.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de base d’allocation.
  • Paramètre 2  - Taille de la région de la mémoire.
  • Paramètre 3  - Stack low limit address.
  • Paramètre 4  - Stack high limit address.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  FREE_THREAD_STACK_MEMORY
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Paramètre FreeType incorrect pour l’opération VirtualFree.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un VirtualFree avec une valeur incorrecte pour le paramètre FreeType. Les deux seules valeurs acceptables pour ce paramètre sont MEM_DECOMMIT et MEM_RELEASE. Si VirtualFree est appelé avec une autre valeur à l’exception de ces deux valeurs, VirtualFree ne parvient pas à libérer la mémoire. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) : l’appelant de VirtualFree est probablement le coupable.

Informations affichées par application Verifier
  • Paramètre 1  -  Valeur incorrecte utilisée par l’application.
  • Paramètre 2  - Valeur correcte attendue 1.
  • Paramètre 3  - Valeur correcte attendue 2.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_FREE_TYPE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Essayez de libérer un bloc de mémoire virtuelle déjà gratuit.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un VirtualFree pour une adresse déjà gratuite. Pour déboguer ce point d’arrêt, examinez la trace de pile actuelle (Ko) et essayez de déterminer pourquoi la mémoire est déjà libre, mais que l’application tente de la libérer à nouveau. '!avrf -vs -a parameter1' recherche un journal des traces de pile des chemins de code qui ont alloué/libéré cette adresse et affiche ces traces de pile si elles sont disponibles. Cela peut afficher la trace de pile qui a libéré cette mémoire.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse du bloc de mémoire.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  MEM_ALREADY_FREE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Paramètre Size incorrect pour l’opération VirtualFree (MEM_RELEASE).

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un VirtualFree (MEM_RELEASE) avec une valeur différente de zéro pour le paramètre dwSize. Lorsque vous utilisez MEM_RELEASE , la seule valeur acceptable pour ce paramètre est 0. Si VirtualFree est appelé avec une autre valeur à l’exception de 0, VirtualFree ne parvient pas à libérer la mémoire. Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) : l’appelant de VirtualFree est probablement le coupable.

Informations affichées par application Verifier
  • Paramètre 1  -  Taille incorrecte utilisée par l’application.
  • Paramètre 2  - Taille correcte attendue (0).
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_FREE_SIZE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Exception inattendue déclenchée dans la routine du point d’entrée de DLL.

Cause probable

Cet arrêt est généré si la fonction de point d’entrée d’une DLL (DllMain) lève une exception. Voici un exemple de mauvaise raison : si DllMain(DLL_PROCESS_ATTACH) déclenche une exception, le chargeur de DLL Windows : - Intercepter et masquer l’exception ; - Déchargez la DLL sans appeler son DllMain(DLL_PROCESS_DETACH). Ainsi, dans de nombreux cas, la DLL a déjà alloué des ressources, puis elle a déclenché l’exception, et elle n’aura pas la possibilité de libérer ces ressources sur DllMain (DLL_PROCESS_DETACH). Pour déboguer ce stop : $ du paramètre1 - pour afficher le nom de la DLL ; $ .exr parameter2 : pour afficher les informations d’exception ; paramètre $.cxr3 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile pour l’heure où l’exception a été levée ; $ parameter4 est l’adresse d’une structure de vérificateur interne et n’a aucune importance pour la plupart des utilisateurs du vérificateur.

Informations affichées par application Verifier
  • Paramètre 1  - Nom de la DLL (utilisez du pour le vider).
  • Paramètre 2  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 3  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.
  • Paramètre 4  Descripteur dll - Verifier

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  DLL_UNEXPECTED_EXCEPTION
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Exception inattendue déclenchée dans la fonction de thread.

Cause probable

Cet arrêt est généré si une fonction de thread déclenche une exception. C’est mauvais parce que tout le processus sera tué. Pour déboguer ce stop : le paramètre $1 peut être significatif pour le type d’exception. Par exemple, un code d’exception C0000005 signifie violation d’accès ; $ .exr parameter2 : pour afficher les informations d’exception ; paramètre $ .cxr3 suivi de ko : pour afficher les informations de contexte d’exception ;

Informations affichées par Application Verifier
  • Paramètre 1  - Code d’exception.
  • Paramètre 2  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 3  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  THREAD_UNEXPECTED_EXCEPTION
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Exception inattendue déclenchée lors de l’interrogation de la mémoire.

Cause probable

Cet arrêt est généré si nous obtenons une exception lors d’un appel IsBadXXXPtr. Cela signifie que la mémoire tampon que nous examinons ne dispose pas de la protection assumée par l’appelant, ou que la mémoire a déjà été libérée, etc. Consultez la discussion ci-dessus sur les autres codes stop (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE) pour obtenir d’autres exemples des raisons pour lesquelles l’utilisation des API IsBadXXXPtr n’est pas recommandée. Pour déboguer ce stop : $ parameter1 sera généralement C00000005, ce qui signifie violation d’accès ; $ .exr parameter2 : pour afficher les informations d’exception ; paramètre $ .cxr3 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile au moment où l’exception a été levée ;

Informations affichées par Application Verifier
  • Paramètre 1  - Code d’exception.
  • Paramètre 2  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 3  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  PROBE_UNEXPECTED_EXCEPTION
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Tentative de réinitialisation de l’adresse NULL.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un appel VirtualFree (MEM_RESET) avec un premier paramètre NULL. MEM_RESET doit être utilisé uniquement pour la mémoire déjà allouée. Null n’est donc pas un premier paramètre valide dans ce cas.

Informations affichées par Application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_MEM_RESET
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Libération du bloc de mémoire du tas à l’intérieur de la plage d’adresses de pile du thread actuel.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un HeapFree, pour un bloc de mémoire qui fait en fait partie de la pile du thread actuel (!). Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de comprendre pourquoi la fonction qui a appelé HeapFree a pensé que le bloc de mémoire a été alloué dynamiquement ou mappé, mais que la mémoire était en fait allouée à partir de la pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de base d’allocation.
  • Paramètre 2  - Taille de la région mémoire.
  • Paramètre 3  - Stack low limit address.
  • Paramètre 4  - Empiler l’adresse de limite élevée.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  FREE_THREAD_STACK_MEMORY_AS_HEAP
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Annuler le mappage de la région de mémoire à l’intérieur de la plage d’adresses de pile du thread actuel.

Cause probable

Cet arrêt est généré si le vérificateur d’application détecte un UnmapViewOfFile pour un bloc de mémoire qui fait en fait partie de la pile du thread actuel (!). Pour déboguer cet arrêt, examinez la trace de pile actuelle (ko) et essayez de comprendre pourquoi la fonction qui a appelé UnmapViewOfFile a pensé que le bloc de mémoire a été alloué dynamiquement ou mappé, mais que la mémoire était en fait allouée à partir de la pile.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de base d’allocation.
  • Paramètre 2  - Taille de la région mémoire.
  • Paramètre 3  - Stack low limit address.
  • Paramètre 4  - Empiler l’adresse de limite élevée.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  FREE_THREAD_STACK_MEMORY_AS_MAP
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Adresse de RTL_RESOURCE incorrecte.

Cause probable

Cet arrêt est généré si l’application tente d’utiliser NULL ou une autre adresse incorrecte (par exemple, une adresse en mode noyau) comme adresse d’un objet valide. RtlInitializeResource (NULL) est un appel d’API incorrect qui déclenchera ce type d’arrêt du vérificateur. param1 est l’adresse incorrecte utilisée et le coupable se trouve sur la trace de pile (affichez-la avec kb).

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_RESOURCE_ADDRESS
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Adresse de section critique non valide.

Cause probable

Cet arrêt est généré si l’application tente d’utiliser NULL ou une autre adresse incorrecte (par exemple, une adresse en mode noyau) comme adresse d’un objet valide. EnterCriticalSection(NULL) est un appel d’API incorrect qui déclenchera ce type d’arrêt du vérificateur. param1 est l’adresse incorrecte utilisée et le coupable se trouve sur la trace de pile (affichez-la avec kb).

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_CRITSECT_ADDRESS
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Tentative d’exécution de code dans la mémoire non exécutable.

Cause probable

Cet arrêt est généré si l’application tente d’exécuter du code à partir d’une adresse non exécutable ou libre. Pour déboguer ce stop : $ u parameter2 - pour désassembler le code coupable $ .exr parameter3 - pour afficher les informations d’exception ; $ .cxr parameter4 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile pour le moment où l’exception a été levée.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse en cours d’accès.
  • Paramètre 2  - Code exécutant un accès non valide.
  • Paramètre 3  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 4  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  THREAD_UNEXPECTED_EXCEPTION_CODE
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Exception inattendue levée lors de l’initialisation de la mémoire tampon de sortie.

Cause probable

Cet arrêt est généré si nous obtenons une exception lors de l’initialisation d’une mémoire tampon spécifiée comme paramètre de sortie pour une API Win32 ou CRT. Cela signifie généralement que la taille de mémoire tampon de sortie spécifiée est incorrecte. Pour déboguer ce stop : $ .exr parameter3 - pour afficher les informations d’exception ; $ .cxr parameter4 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile au moment où l’exception a été levée.

Informations affichées par Application Verifier
  • Paramètre 1  -Adresse de  démarrage de la mémoire tampon.
  • Paramètre 2  - Taille de la mémoire tampon.
  • Paramètre 3  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 4  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  OUTBUFF_UNEXPECTED_EXCEPTION
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Exception inattendue lors de la recherche de la taille du bloc de tas.

Cause probable

Cet arrêt est généré si nous obtenons une exception lors de l’appel de HeapSize pour un bloc de tas en cours de libération. Cela signifie généralement que l’adresse de bloc de tas spécifiée est incorrecte ou que le tas est endommagé. Pour déboguer ce stop : $ .exr parameter3 - pour afficher l’enregistrement d’exception ; $ .cxr parameter4 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile au moment où l’exception a été levée.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse du bloc de tas libéré.
  • Paramètre 2  - Poignée de tas.
  • Paramètre 3  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 4  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  SIZE_HEAP_UNEXPECTED_EXCEPTION
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Libération d’un bloc de mémoire avec une adresse de début non valide.

Cause probable

Cet arrêt est généré si le programme appelle VirtualFree (MEM_RELEASE) avec un paramètre lpAddress qui n’est pas l’adresse de base retournée par la fonction VirtualAlloc ou VirtualAllocEx lorsque la région des pages était réservée ; Pour déboguer ce stop : $ kb : pour afficher la trace de pile actuelle, qui appelle VirtualFree. Le coupable probable est la DLL qui appelle VirtualFree.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse du bloc de mémoire libéré.
  • Paramètre 2  -  Adresse de bloc de mémoire correcte attendue.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_FREEMEM_START_ADDRESS
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Annuler le mappage du bloc de mémoire avec une adresse de début non valide.

Cause probable

Cet arrêt est généré si le programme appelle UnmapViewOfFile avec un paramètre lpBaseAddress qui n’est pas identique à la valeur retournée par un appel précédent à la fonction MapViewOfFile ou MapViewOfFileEx. Pour déboguer ce stop : $ kb pour afficher la trace de pile actuelle, qui appelle UnmapViewOfFile. Le coupable probable est la DLL qui appelle UnmapViewOfFile.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse du bloc de mémoire en cours d’annulation.
  • Paramètre 2  -  Adresse de bloc de mémoire correcte attendue.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  INVALID_UNMAPVIEW_START_ADDRESS
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

exception inattendue déclenchée dans la fonction de rappel du pool de threads.

Cause probable

Cet arrêt est généré si une fonction de rappel dans le thread thread de pool de threads déclenche une exception. Pour déboguer cet arrêt : $ parameter1 peut être significatif pour le type d’exception. Par exemple, un code d’exception C0000005 signifie violation d’accès. $ .exr parameter2 : pour afficher les informations d’exception. Paramètre $.cxr3 suivi de kb : pour afficher les informations de contexte d’exception.

Informations affichées par application Verifier
  • Paramètre 1  - Code d’exception
  • Paramètre 2  - Enregistrement d’exception. Utiliser .exr pour l’afficher
  • Paramètre 3  - Enregistrement de contexte. Utiliser .cxr pour l’afficher
  • Paramètre 4  - Non utilisé

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  THREADPOOL_UNEXPECTED_EXCEPTION
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

code dans la mémoire non exécutable

Cause probable

Cet arrêt est généré si l’application tente d’exécuter du code à partir d’une adresse non exécutable ou libre. Pour déboguer ce stop : $ u parameter2 - pour désassembler le code coupable $ .exr parameter3 - pour afficher les informations d’exception $ .cxr parameter4 suivi de kb - pour afficher les informations de contexte d’exception et la trace de pile pour l’heure où l’exception a été levée.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse accessible
  • Paramètre 2  - Code effectuant un accès non valide
  • Paramètre 3  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 4  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  THREADPOOL_UNEXPECTED_EXCEPTION_CODE
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Création d’un tas exécutable.

Cause probable

Cet arrêt est généré si l’application crée un tas exécutable. Cela peut constituer un risque de sécurité.

Informations affichées par application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  EXECUTABLE_HEAP
  • Code d’arrêt :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Allocation de mémoire exécutable.

Cause probable

Cet arrêt est généré si l’application alloue de la mémoire exécutable. Cela peut constituer un risque de sécurité.

Informations affichées par application Verifier
  • Paramètre 1  - Protection de page spécifiée par l’appelant.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Mémoire
  • ID d’arrêt :  EXECUTABLE_MEMORY
  • Arrêter le code :  600NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Tentative d’exécution de code dans la mémoire non exécutable (première chance).

Cause probable

Cet arrêt est généré si l’application tente d’exécuter du code à partir d’une adresse non exécutable ou libre. Pour déboguer ce stop : $ u parameter2 - pour désassembler le code coupable $ .exr parameter3 - pour afficher les informations d’exception ; $ .cxr parameter4 suivi de kb : pour afficher les informations de contexte d’exception et la trace de pile pour le moment où l’exception a été levée.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse en cours d’accès.
  • Paramètre 2  - Code exécutant un accès non valide.
  • Paramètre 3  - Enregistrement d’exception. Utilisez .exr pour l’afficher.
  • Paramètre 4  - Enregistrement de contexte. Utilisez .cxr pour l’afficher.

Informations supplémentaires
  • Couche de test :  Exceptions
  • ID d’arrêt :  FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Arrêter le code :  650NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

La priorité de ce thread de thread de thread a été modifiée.

Cause probable

Cet arrêt est généré si la priorité du thread est modifiée lorsqu’elle est retournée au threadpool.

Informations affichées par Application Verifier
  • Format:  - Thread  de pool de threads (%x) ayant exécuté le rappel (%p) a une priorité de thread modifiée (%i -> %i)
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Contexte.
  • Paramètre 3  - Threadpool Trace de pile d’allocation d’objets, utilisez dps pour le vider.
  • Paramètre 4  - Priorité actuelle.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  INCONSISTENT_PRIORITY
  • Arrêter le code :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

L’affinité de ce thread de thread de thread a été modifiée.

Cause probable

Cet arrêt est généré si l’affinité de thread est modifiée lorsqu’elle est retournée au pool de threads.

Informations affichées par Application Verifier
  • Format:  - threadpool (%x) ayant exécuté le rappel (%p) a un masque d’affinité de thread modifié (%p -> %p)
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Contexte.
  • Paramètre 3  - Threadpool Trace de pile d’allocation d’objets, utilisez dps pour le vider.
  • Paramètre 4  - Affinité actuelle.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  INCONSISTENT_AFFINITY_MASK
  • Arrêter le code :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Msg non traité dans le pool msg du thread actif.

Cause probable

Cet arrêt est généré si un message laissé comme non traité lorsque ce thread de thread de thread est retourné au pool. C’est dangereux, car il sera traité dans un contexte totalement différent. Utilisez s’il vous plaît utiliser !avrf -tp <Param4> pour afficher les messages publiés sur ce thread.

Informations affichées par Application Verifier
  • Format:  - thread de pool de threads (%x) ayant exécuté le rappel (%p) a un message de fenêtre en suspens (%x : %x)
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Contexte.
  • Paramètre 3  - Threadpool Trace de pile d’allocation d’objets, utilisez dps pour le vider.
  • Paramètre 4  - ID de thread thread de thread de thread de pool. Utilisez !avrf -tp <threadid> pour afficher les messages publiés sur ce thread.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  ORPHANED_THREAD_MESSAGE
  • Arrêter le code :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

La fenêtre non fermée appartenait au thread actif.

Cause probable

Cet arrêt est généré si une fenêtre est maintenue en vie lorsque ce thread de thread de thread est retourné au pool.

Informations affichées par Application Verifier
  • Format:  - thread  de pool de threads (%x) ayant exécuté le rappel (%p) a un hwnd valide (%x : %s) qui peut recevoir des messages
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Contexte.
  • Paramètre 3  - Threadpool Trace de pile d’allocation d’objets, utilisez dps pour le vider.
  • Paramètre 4  - ID de thread thread de thread de thread de pool.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  ORPHANED_THREAD_WINDOW
  • Arrêter le code :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

ExitThread() sur un thread de pool de threads.

Cause probable

Cet arrêt est généré si ExitThread est appelé sur un thread de pool de threads. C’est interdit, car cela rendra le système instable. Cela provoquera une fuite de ressources, un blocage ou un av.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  ILLEGAL_THREAD_EXIT
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le thread est à l’état d’emprunt d’identité lorsqu’il est retourné à un thread de pool de threads.

Cause probable

Cet arrêt est généré si la fonction de rappel modifie le jeton de thread pour emprunter l’identité d’un autre utilisateur et a oublié de le réinitialiser avant de le renvoyer au pool de threads.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  THREAD_IN_IMPERSONATION
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Une fonction qui nécessite un thread persistant est appelée.

Cause probable

Certaines API Microsoft Windows doivent être appelées à l’intérieur d’un thread dédié ou persistant. Dans le pool de threads, vous devez généralement éviter d’utiliser le stockage local de threads et de mettre en file d’attente les appels asynchrones qui nécessitent un thread persistant, tel que la fonction RegNotifyChangeKeyValue. Toutefois, ces fonctions peuvent être mises en file d’attente vers un thread de travail persistant à l’aide de QueueUserWorkItem avec l’option WT_EXECUTEINPERSISTENTTHREAD. Un ko dans le débogueur révèle l’appelant.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  PERSISTED_THREAD_NEEDED
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le thread est dans sale’état de transaction.

Cause probable

Cet arrêt est généré si la fonction de rappel a oublié de fermer ou de réinitialiser le handle de transaction actuel.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Handle de transaction.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  DIRTY_TRANSACTION_CONTEXT
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Cet état de pool de threads a des appels CoInit et CoUnInit déséquilibrés.

Cause probable

Cet arrêt est généré si la fonction de rappel appelle CoInit et CoUnInit déséquilibré.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  -  Nombre d’appels équilibré.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  DIRTY_COM_STATE
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Les paramètres de l’objet minuteur sont incohérents. La période doit être 0 lorsque WT_EXECUTEONLYONCE est spécifié lors de la création du minuteur

Cause probable

Cet arrêt est généré si la période de signal du minuteur n’est pas égale à zéro lorsque le minuteur n’est défini pour signaler qu’une seule fois avec l’indicateur WT_EXECUTEONLYONCE

Informations affichées par application Verifier
  • Paramètre 1  - Période spécifiée.
  • Paramètre 2  - Indicateurs spécifiés.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  INCONSISTENT_TIMER_PARAMS
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

Le verrou du chargeur a été maintenu par le thread threadpool dans le rappel.

Cause probable

Cet arrêt est généré si le verrou du chargeur est maintenu dans le rappel et n’est pas libéré lorsque le thread est retourné au pool de threads.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  LOADER_LOCK_HELD
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

La langue par défaut est définie par le thread de threadpool dans le rappel.

Cause probable

Cet arrêt est généré si la langue par défaut est définie dans le rappel et n’est pas effacée lorsque le thread est retourné au pool de threads.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  PREFERRED_LANGUAGES_SET
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

La priorité d’arrière-plan est définie par le thread de threadpool dans le rappel.

Cause probable

Cet arrêt est généré si la priorité d’arrière-plan est définie dans le rappel et n’est pas désactivée lorsque le thread est retourné au pool de threads.

Informations affichées par application Verifier
  • Paramètre 1  - Callback, fonction.
  • Paramètre 2  - Context.
  • Paramètre 3  - Trace de pile d’allocation d’objets threadpool, utilisez dps pour la vider.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  BACKGROUND_PRIORITY_SET
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

TerminateThread() sur un thread de thread de pool de threads.

Cause probable

Cet arrêt est généré si TerminateThread est appelé sur un thread de pool de threads. C’est interdit, car cela rendra le système instable. Cela provoquera une fuite de ressources, un blocage ou un av.

Informations affichées par application Verifier
  • Paramètre 1  - Non utilisé.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  Threadpool
  • ID d’arrêt :  ILLEGAL_THREAD_TERMINATION
  • Code d’arrêt :  700NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

La pile a été dérouillée lorsque l’opération d’E/S asynchrone est en attente.

Cause probable

Cet arrêt est généré si l’application a émis une opération d’E/S qui utilise une variable de pile et n’a pas attendu la fin de l’E/S, ce qui entraîne une altération de la pile. Pour déboguer ce stop : $ dps parameter4 pour afficher la trace de pile lorsque les E/S ont été émises. Parameter1 indique l’adresse basée sur la pile et le paramètre3 le thread qui a émis les E/S.

Informations affichées par application Verifier
  • Paramètre 1  - Adresse de la variable de pile utilisée dans les E/S.
  • Paramètre 2  - Pointeur de pile actuel.
  • Paramètre 3  - Thread d’origine qui a émis les E/S.
  • Paramètre 4  - Stack Trace lorsque les E/S ont été émises.

Informations supplémentaires
  • Couche de test :  IO
  • ID d’arrêt :  ASYNCIO_STACK_UNWIND
  • Code d’arrêt :  800NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un retour arrière :  Oui

La pile a été endommagée lorsque l’opération d’E/S asynchrone est en attente.

Cause probable

Cet arrêt est généré si l’application a émis une opération d’E/S qui utilise une variable de pile et n’a pas attendu la fin de l’E/S, ce qui entraîne une altération de la pile. Pour déboguer ce stop : $ dps parameter4 pour afficher la trace de pile lorsque les E/S ont été émises. Parameter1 indique l’adresse basée sur la pile et le paramètre3 le thread qui a émis les E/S.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de la variable de pile utilisée dans les E/S.
  • Paramètre 2  - Pointeur de pile actuel.
  • Paramètre 3  - Thread d’origine qui a émis les E/S.
  • Paramètre 4  - Stack Trace lorsque les E/S ont été émises.

Informations supplémentaires
  • Couche de test :  IO
  • ID d’arrêt :  ASYNCIO_CORRUPTED_STACK
  • Arrêter le code :  800NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Utilisation d’une adresse libérée dans une opération d’E/S en attente.

Cause probable

Cet arrêt est généré si l’application a émis une opération d’E/S et libéré la mémoire utilisée dans les E/S avant la fin de l’E/S, ce qui entraîne une altération de la mémoire, etc. Pour déboguer ce stop : $ dps parameter4 pour afficher la trace de pile lorsque les E/S ont été émises. Le paramètre1 indique l’adresse utilisée dans les E/S. Le paramètre2 indique l’adresse libérée et le paramètre3 le thread qui a émis les E/S.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse utilisée dans les E/S.
  • Paramètre 2  - Adresse libérée.
  • Paramètre 3  - Thread d’origine qui a émis les E/S.
  • Paramètre 4  - Stack Trace lorsque les E/S ont été émises.

Informations supplémentaires
  • Couche de test :  IO
  • ID d’arrêt :  FREED_ADDRESS_IN_PENDINGIO
  • Arrêter le code :  800NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Un bloc d’E/S status (CHEVAUCHEMENT) est réutilisé alors que la demande d’E/S associée est toujours en attente.

Cause probable

Cet arrêt est généré si l’application a réutilisé un bloc d’E/S status (CHEVAUCHEMENT) alors qu’une demande d’E/S utilisant ce bloc d’E/S status (OVERLAPPED) est toujours en attente. Pour déboguer ce stop : $ dps parameter3 pour afficher la trace de pile lorsque l’E/S d’origine a été émise. Le paramètre1 indique l’adresse utilisée dans l’E/S et le paramètre2 le thread qui a émis les E/S.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse du bloc d’E/S status (CHEVAUCHEMENT).
  • Paramètre 2  - Thread d’origine qui a émis les E/S.
  • Paramètre 3  - Stack Trace lorsque les E/S ont été émises.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  IO
  • ID d’arrêt :  REUSED_IOSTATUS_BLOCK
  • Arrêter le code :  800NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

À l’aide d’un indicateur non pris en charge, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED sur CreateFile

Cause probable

L’ancienne version de MSDN a documenté à tort CreateFile comme prenant en charge FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Si cet indicateur est prévu, il doit être défini à l’aide d’autres fonctions d’API telles que SetFileAttributes. $ ln Parameter1 pour rechercher l’appelant de CreateFile.

Informations affichées par Application Verifier
  • Format:  -  CreateFile lors de l’écriture de %hs%ws avec les indicateurs %08x %08x %08x
  • Paramètre 1  - Adresse de retour.
  • Paramètre 2  - Non utilisé.
  • Paramètre 3  - Non utilisé.
  • Paramètre 4  - Non utilisé.

Informations supplémentaires
  • Couche de test :  IO
  • ID d’arrêt :  USING_BAD_CREATEFILE_FLAG
  • Arrêter le code :  800NAN
  • Gravité:  Avertissement
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Aucun
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Une allocation de tas a été divulguée.

Cause probable

Cet arrêt est généré si la dll propriétaire de l’allocation a été déchargée dynamiquement lors de la propriété des ressources.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de l’allocation divulguée. Exécutez !heap -p -a <address> pour obtenir des informations supplémentaires sur l’allocation.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  ALLOCATION
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Un HANDLE a été divulgué.

Cause probable

Cet arrêt est généré si la dll propriétaire du handle a été déchargée dynamiquement lors de la propriété des ressources. Pour déboguer cet arrêt : exécutez !htrace parameter1 pour obtenir des informations supplémentaires sur le handle.

Informations affichées par Application Verifier
  • Paramètre 1  - Valeur du handle divulgué. Exécutez !htrace <handle> pour obtenir des informations supplémentaires sur le handle si le suivi de handle est activé.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  POIGNÉE
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Un HKEY a été divulgué.

Cause probable

Cet arrêt est généré si la dll propriétaire de la clé de Registre a été déchargée dynamiquement pendant la propriété des ressources.

Informations affichées par Application Verifier
  • Paramètre 1  - Valeur de la clé HKEY divulguée.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  REGISTRE
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Une réservation virtuelle a été divulguée.

Cause probable

Cet arrêt est généré si la dll propriétaire de la réservation virtuelle a été déchargée dynamiquement lors de la propriété des ressources.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de réservation divulguée.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  VIRTUAL_RESERVATION
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Un BSTR a été divulgué.

Cause probable

Cet arrêt est généré si la dll propriétaire de SysString a été déchargée dynamiquement lors de la propriété des ressources.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse du BSTR qui a fait l’objet d’une fuite. Exécutez !heap -p -a <address> pour obtenir des informations supplémentaires sur l’allocation.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  SYSSTRING
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Une notification d’alimentation n’a pas été désinscrit.

Cause probable

Cet arrêt est généré si la dll s’est inscrite pour la notification d’alimentation et a été déchargée dynamiquement sans désinscription.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de l’inscription de la notification d’alimentation.
  • Paramètre 2  - Adresse à la trace de pile d’inscription. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  POWER_NOTIFICATION
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Une allocation COM a été divulguée.

Cause probable

Cet arrêt est généré si la dll propriétaire de l’allocation COM a été déchargée dynamiquement lors de la propriété des ressources.

Informations affichées par Application Verifier
  • Paramètre 1  - Adresse de l’allocation COM divulguée. Exécutez !heap -p -a <address> pour obtenir des informations supplémentaires sur l’allocation.
  • Paramètre 2  - Adresse à la trace de la pile d’allocation. Exécutez l’adresse> dps <pour afficher la pile d’allocation.
  • Paramètre 3  - Adresse du nom de la dll propriétaire. Exécutez l’adresse> du <pour lire le nom de la dll.
  • Paramètre 4  - Base de la dll propriétaire. Exécutez .reload <dll_name> = <adresse> pour recharger la dll propriétaire. Utilisez « lm » pour obtenir plus d’informations sur les modules chargés et déchargés.

Informations supplémentaires
  • Couche de test :  Fuite
  • ID d’arrêt :  COM_ALLOCATION
  • Arrêter le code :  900NAN
  • Gravité:  Erreur
  • Erreur ponctuelle : 
  • Rapport d’erreurs :  Pause
  • Journaliser dans le fichier :  Oui
  • Créer un backtrace :  Oui

Voir aussi

Vérificateur d’application - Codes et définitions d’arrêt

Vérificateur d’application - Vue d’ensemble

Vérificateur d’application - Fonctionnalités

Vérificateur d’applications - Test des applications

Vérificateur d’application - Tests dans Application Verifier

Vérificateur d’application - Débogage des arrêts du vérificateur d’application

Vérificateur d’application - Forum aux questions