Controllo bug 0x102: DPC_WATCHDOG_TIMEOUT
Il controllo dei bug DPC_WATCHDOG_TIMEOUT ha un valore pari a 0x00000102. Ciò indica che la routine watchdog DPC non è stata eseguita entro l'intervallo di tempo allocato.
Importante
Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.
parametri DPC_WATCHDOG_TIMEOUT
Parametro | Descrizione |
---|---|
1 | Intervallo di timeout del watchdog DPC nei tick del clock nominale. |
2 | Indirizzo PRCB del processore bloccato. |
3 | Riservato |
4 | Riservato |
Causa
Questo controllo di bug indica in genere che un ISR è bloccato a un IRQL che è al di sotto del livello di clock e superiore al livello di invio oppure una routine DPC è bloccata sul processore specificato.
Ad esempio, per i driver StorPort Miniport, StorPort.sys gestisce i completamenti di I/O in una routine eseguita in DISPATCH_LEVEL e che chiama in modo seriale le routine di completamento di I/O di tutti i runtime di integrazione appena completati. Se le routine di completamento di I/O richiedono troppo tempo, la tastiera e/o il mouse potrebbero smettere di rispondere. È anche possibile che la routine timer Watchdog di Windows DPC decida che la routine StorPort ha impiegato un tempo eccessivo per terminare.
Risoluzione
Un driver kernel nello stack di archiviazione può ridurre la probabilità del problema codificando in modo efficiente la routine di completamento di I/O del driver. Se non è ancora possibile eseguire tutte le operazioni di elaborazione necessarie nella routine di completamento in un tempo sufficiente, la routine può creare un elemento di lavoro per il lavoro di I/O, accodare l'elemento a una coda di lavoro e restituire STATUS_MORE_PROCESSING_REQUIRED; Un thread di lavoro del driver dovrebbe quindi trovare l'elemento di lavoro, eseguire il lavoro ed eseguire IoCallerDriver per l'IRP per garantire l'ulteriore elaborazione di I/O di IRP.