Поделиться через


0x102 проверки ошибок: DPC_WATCHDOG_TIMEOUT

Проверка ошибок DPC_WATCHDOG_TIMEOUT имеет значение 0x00000102. Это означает, что подпрограмма наблюдения DPC не была выполнена в течение выделенного интервала времени.

Важно!

Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки "синий экран" во время работы с компьютером, см. статью Устранение ошибок синего экрана.

Параметры DPC_WATCHDOG_TIMEOUT

Параметр Описание
1 Интервал ожидания наблюдателя DPC в номинальных тактах часов.
2 Адрес PRCB зависающего процессора.
3 Зарезервировано
4 Зарезервировано

Причина

Эта ошибка проверка обычно означает, что isr висит на irQL ниже уровня синхронизации и выше уровня диспетчеризации, или подпрограмма DPC висит на указанном процессоре.

Например, для драйверов StorPort Miniport StorPort.sys обрабатывает завершения ввода-вывода в подпрограмме, которая выполняется в DISPATCH_LEVEL и которая последовательно вызывает подпрограммы завершения ввода-вывода для всех только что завершенных irp. Если процедуры завершения ввода-вывода по отдельности или вместе занимают слишком много времени, клавиатура или мышь могут перестать отвечать. Кроме того, возможно, что подпрограмма таймера Watchdog Windows DPC решит, что процедура StorPort заняла слишком много времени.

Решение

Драйвер ядра в стеке хранилища может снизить вероятность проблемы за счет эффективного написания кода процедуры завершения ввода-вывода драйвера. Если по-прежнему невозможно выполнить всю необходимую обработку в подпрограмме завершения в достаточное время, подпрограмма может создать рабочий элемент для работы ввода-вывода, поместить элемент в очередь в рабочую очередь и вернуть STATUS_MORE_PROCESSING_REQUIRED; Затем рабочий поток драйвера должен найти рабочий элемент, выполнить работу и выполнить IoCallerDriver для IRP, чтобы обеспечить дальнейшую обработку IRP.