| Предыдущий | Следующий |
| 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, который сам должен выполниться в том же исчерпанном пуле. Такой цикл не устраняется увеличением числа потоков, если сохраняется неправильный порядок захвата ресурсов.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.