| Предыдущий | Следующий |
| STATUS_CALLBACK_RETURNED_TRANSACTION | STATUS_CALLBACK_RETURNED_LANG |
STATUS_CALLBACK_RETURNED_LDR_LOCK
Что означает STATUS_CALLBACK_RETURNED_LDR_LOCK
STATUS_CALLBACK_RETURNED_LDR_LOCK означает, что callback пула завершился, не освободив блокировку загрузчика.
Почему это опасно
Блокировка загрузчика сериализует загрузку, выгрузку и инициализацию DLL. Если повторно используемый рабочий поток возвращается в пул с этой блокировкой, последующие операции загрузчика могут зависнуть или войти в взаимную блокировку из-за порядка захвата блокировок.
Что проверить
DllMainи callbacks, которые выполняют загрузку/выгрузку DLL, инициализацию COM или ожидание работы пула потоков.- Каждый путь захвата/освобождения, включая ошибки и досрочный возврат.
- Циклы между код, чувствительный к блокировке загрузчика, и ожидания cleanup-group.
Как исправлять
Не выполняйте долгую или блокирующую работу из DllMain. Освобождайте блокировки, связанные с загрузчиком, до возврата из callback и переносите тяжёлую инициализацию в обычный обычный путь выполнения после загрузки модуля.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
