| Предыдущий | Следующий |
| ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH | ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT |
ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT
Стек устройства завис, пока Windows выясняла, безопасно ли его удалить
Перед штатным удалением, отключением или некоторыми операциями обновления драйвера диспетчер PnP отправляет IRP_MN_QUERY_REMOVE_DEVICE сверху вниз по стеку устройства. Каждый PnP-драйвер должен решить, можно ли продолжить удаление, и передать запрос дальше по стеку. Ошибка указывает, что сам этап опроса занял слишком много времени, поэтому Windows не получила своевременного ответа от целевого стека.
Важно отличить запрет от зависания. Обычный запрет — это явный отказ, поскольку устройство ещё требуется; тайм-аут означает, что драйвер не завершил или не переслал PnP-запрос вовремя. Проверьте стек на ожидающие PnP-обратные вызовы, незавершённые remove lock и длительную работу, выполняемую синхронно из DispatchPnP. Перезагрузка может завершить административную операцию, но не объяснит, какой слой задержал запрос.
Что проверить
- До перезагрузки сохраните экземпляр устройства и полный стек драйверов.
- Проверьте трассировки PnP и Driver Framework на ожидающий запрос query-remove.
- В коде драйвера убедитесь, что DispatchPnP на каждом пути пересылает или завершает IRP.
Ссылки
- Microsoft: IRP_MN_QUERY_REMOVE_DEVICE
- Microsoft: обработка query-remove
- Microsoft: когда выдаются PnP remove IRP
Нужно найти другой код? Найти другой код состояния или ошибки.
