Что означает код BSOD 0x1C5 (IO_THREADPOOL_DEADLOCK_LIVEDUMP)?

 
Также может означать:
КонстантаТипОС
ERROR_CAPAUTHZ_NOT_AUTHORIZEDОшибка WindowsWindows
Предыдущий Следующий
DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP FAST_ERESOURCE_PRECONDITION_VIOLATION

IO_THREADPOOL_DEADLOCK_LIVEDUMP

Bug check IO_THREADPOOL_DEADLOCK_LIVEDUMP имеет значение 0x000001C5. Это означает, что пул потоков режима ядра оказался во взаимоблокировке.

Параметры IO_THREADPOOL_DEADLOCK_LIVEDUMP

Параметр Описание
1

Номер пула.

0x0: ExPoolUntrusted

2 Указатель на PEX_WORK_QUEUE
3 Зарезервировано
4 Зарезервировано

Поиск источника взаимоблокировки

Как найти цикл ожидания

Параметр 1 указывает номер пула; для опубликованного значения 0 это ExPoolUntrusted. В дампе перечислите рабочие потоки этого пула, их wait objects и владельцев блокировок. Цель анализа — построить цепочку, в которой каждый участник ждёт ресурс, удерживаемый следующим.

Отдельно проверьте queued work items и завершения I/O: драйвер может удерживать lock во время ожидания callback, который сам должен выполниться в том же исчерпанном пуле. Такой цикл не устраняется увеличением числа потоков, если сохраняется неправильный порядок захвата ресурсов.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.