0x133 de vérification des bogues : DPC_WATCHDOG_VIOLATION
Le case activée de bogue DPC_WATCHDOG_VIOLATION a la valeur 0x00000133. Ce bogue case activée indique que le chien de garde DPC s’est exécuté, soit parce qu’il a détecté un seul appel de procédure différée (DPC) de longue durée, soit parce que le système a passé un temps prolongé à un niveau de demande d’interruption (IRQL) de DISPATCH_LEVEL ou supérieur.
La valeur du paramètre 1 indique si un seul DPC a dépassé un délai d’expiration ou si le système a passé une période prolongée à IRQL DISPATCH_LEVEL ou plus. Les DPC ne doivent pas s’exécuter plus de 100 microsecondes et les ISR ne doivent pas s’exécuter plus de 25 microsecondes, mais les valeurs de délai d’expiration réelles sur le système sont beaucoup plus élevées.
Pour plus d’informations sur les DPC, consultez Introduction to DPC Objects and Windows Internals 7th Edition Part 1 par Pavel Yosifovich, Mark E. Russinovich, David A. Solomon et Alex Ionescu.
Important
Cet article est destiné aux programmeurs. Si vous êtes un client qui a reçu un code d’erreur d’écran bleu lors de l’utilisation de votre ordinateur, consultez Résoudre les erreurs d’écran bleu.
paramètres de DPC_WATCHDOG_VIOLATION
Le paramètre 1 indique le type de violation. La signification des autres paramètres dépend de la valeur du paramètre 1.
Paramètre 1 | Paramètre 2 | Paramètre 3 | Paramètre 4 | Cause de l’erreur |
---|---|---|---|---|
0 | Nombre de temps DPC (en graduations) | Allocation de temps DPC (en cycles). | cast en nt ! DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, qui contient des informations supplémentaires concernant ce délai d’expiration DPC unique | Un seul DPC ou ISR a dépassé son allocation de temps. Le composant incriminé peut généralement être identifié avec une trace de pile. |
1 | La période de surveillance | cast en nt ! DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, qui contient des informations supplémentaires concernant ce délai d’expiration DPC unique | Réservé | Le système a passé une période de temps prolongée à l’IRQL DISPATCH_LEVEL ou au-delà. Le composant incriminé peut généralement être identifié avec une trace de pile. |
Cause
Pour déterminer la cause, le débogueur Windows, l’expérience de programmation et l’accès au code source du module défaillant sont nécessaires.
Pour plus d'informations, consultez les rubriques suivantes :
Analyse de vidage sur incident à l’aide des débogueurs Windows (WinDbg)
Analyse d’un fichier de vidage Kernel-Mode avec WinDbg
Utilisation de l’extension !analyze et !analyze
Pour plus d’informations sur Windows DPC, consultez Windows Internals 7th Edition Part 1 par Pavel Yosifovich, Mark E. Russinovich, David A. Solomon et Alex Ionescu.
Exemple 1
L’extension de débogage !analyze affiche des informations sur le bogue case activée et peut être utile pour déterminer la cause racine.
Paramètre 1 = 0
Dans cet exemple, le nombre de graduations de 501 dépasse l’allocation de temps DPC de 500. Le nom de l’image indique que ce code s’exécutait lorsque le bogue case activée s’est produit.
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IRQL of DISPATCH_LEVEL
or above.
Arguments:
Arg1: 0000000000000000, A single DPC or ISR exceeded its time allotment. The offending
component can usually be identified with a stack trace.
Arg2: 0000000000000501, The DPC time count (in ticks).
Arg3: 0000000000000500, The DPC time allotment (in ticks).
Arg4: 0000000000000000
...
IMAGE_NAME: BthA2DP.sys
...
Utilisez les commandes de débogueur suivantes pour collecter plus d’informations en cas d’échec avec un paramètre de 0 :
k (Retour arrière de la pile d’affichage) pour examiner le code en cours d’exécution lorsque le code d’arrêt s’est produit.
Vous pouvez utiliser la commande u, ub, uu (Unassemble) pour examiner plus en détail les spécificités d’un code en cours d’exécution.
L’extension !pcr affiche la status actuelle de la région de contrôle du processeur (PCR) sur un processeur spécifique. Dans la sortie se trouve l’adresse du Prcb
0: kd> !pcr
KPCR for Processor 0 at fffff8035f5a4000:
Major 1 Minor 1
NtTib.ExceptionList: fffff80368e77fb0
NtTib.StackBase: fffff80368e76000
NtTib.StackLimit: 0000000000000000
NtTib.SubSystemTib: fffff8035f5a4000
NtTib.Version: 000000005f5a4180
NtTib.UserPointer: fffff8035f5a4870
NtTib.SelfTib: 000000b6d3086000
SelfPcr: 0000000000000000
Prcb: fffff8035f5a4180
Irql: 0000000000000000
IRR: 0000000000000000
IDR: 0000000000000000
InterruptMode: 0000000000000000
IDT: 0000000000000000
GDT: 0000000000000000
TSS: 0000000000000000
CurrentThread: fffff80364926a00
NextThread: ffffe40b77c12040
IdleThread: fffff80364926a00
Vous pouvez utiliser la commande dt (type d’affichage) pour afficher des informations supplémentaires sur les contrôleurs de base de données et la surveillance DPC. Pour l’adresse, utilisez le Prcb répertorié dans la sortie !pcr :
dt nt!_KPRCB fffff80309974180 Dpc*
0: kd> dt nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK fffff803648fa320
+0x000 Signature : 0xaebecede
+0x004 Revision : 1
+0x006 Size : 0x10
+0x008 DpcWatchdogProfileOffset : 0x84a8
+0x00c DpcWatchdogProfileLength : 0x8200
Exemple 2
Paramètre 1 = 1
Pour le paramètre 1, le code ne peut pas s’arrêter dans la zone de code incriminable. Dans ce cas, une approche consiste à utiliser le suivi d’événements pour tenter de déterminer quel pilote dépasse sa durée d’exécution normale.
Utilisez l’extension de débogage !analyze pour afficher des informations sur le bogue case activée.
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IRQL of DISPATCH_LEVEL
or above.
Arguments:
Arg1: 0000000000000001, The system cumulatively spent an extended period of time at
DISPATCH_LEVEL or above. The offending component can usually be
identified with a stack trace.
Arg2: 0000000000001e00, The watchdog period.
Arg3: fffff803648fa320, cast to nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, which contains
additional information regarding the cumulative timeout
Arg4: 0000000000000000
Caster l’adresse du nt ! DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK d’afficher des informations à son sujet.
0: kd> dt nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK fffff803648fa320
+0x000 Signature : 0xaebecede
+0x004 Revision : 1
+0x006 Size : 0x10
+0x008 DpcWatchdogProfileOffset : 0x84a8
+0x00c DpcWatchdogProfileLength : 0x8200
Utilisez la commande !dpcs pour afficher les DPC mis en file d’attente.
3: kd> !dpcs
CPU Type KDPC Function
0: Normal : 0xfffff8035f5ac290 0xfffff80363e15630 nt!PpmPerfAction
Failed to read DPC at 0xffffe40b77190dd8
0: Threaded: 0xfffff8035f5ac3d8 0xfffff80363f27d70 nt!KiDpcWatchdog
Résolution
Pour déterminer la cause spécifique et créer un correctif de code, l’expérience de programmation et l’accès au code source du module défaillant sont nécessaires.
Remarques
En général, ce code d’arrêt est dû à un code de pilote défectueux qui, dans certaines conditions, n’effectue pas son travail dans le délai imparti.
Si vous n’êtes pas équipé pour utiliser le débogueur Windows pour résoudre ce problème, vous devez utiliser certaines techniques de dépannage de base.
Si un pilote est identifié dans le message de case activée bogue, pour isoler le problème, désactivez-le. Vérifiez auprès du fabricant les mises à jour du pilote.
Vérifiez le journal système observateur d'événements pour obtenir des messages d’erreur supplémentaires susceptibles d’aider à identifier le périphérique ou le pilote qui est à l’origine du bogue case activée 0x133.
Vérifiez que tout nouveau matériel installé est compatible avec la version installée de Windows. Par exemple, pour Windows 10, vous pouvez obtenir des informations sur le matériel requis dans spécifications Windows 10.
Pour obtenir des informations générales supplémentaires sur la résolution des problèmes, consultez Données d’écran bleu.
Voir aussi
Analyse de vidage sur incident à l’aide des débogueurs Windows (WinDbg)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour