| Предыдущий | Следующий |
| STATUS_FLOAT_MULTIPLE_TRAPS | STATUS_JOURNAL_DELETE_IN_PROGRESS |
STATUS_DEVICE_REMOVED
Запрос потерял экземпляр физического устройства
Неожиданное удаление PnP может произойти до закрытия приложениями дескрипторов и завершения всех поставленных в очередь операций ввода-вывода. Драйверы должны прекратить обращение к оборудованию, завершить или отклонить ожидающие запросы, отключить интерфейсы и сохранить достаточно программного состояния для безопасной обработки последующего запроса удаления. Существующие файловые объекты не удерживают физическое устройство в системе.
Приложения должны считать дескриптор недопустимым для дальнейшего доступа к оборудованию и дождаться появления нового интерфейса. Драйверы должны отличать неожиданное удаление от штатного query-remove, чтобы не ждать бесконечно аппаратного завершения, которое уже невозможно.
Что проверить
- Сохраните уведомление об удалении, ожидающие запросы и последнюю успешную операцию с оборудованием.
- Убедитесь, что драйвер немедленно прекращает DMA, обработку прерываний и доступ к регистрам после неожиданного удаления.
- Закройте устаревшие дескрипторы и открывайте их заново только после объявления интерфейса устройства-замены.
Ссылки
- Microsoft: обработка неожиданного удаления
- Microsoft: удаление устройства
- Microsoft: состояния устройств PnP
- Открытые спецификации Microsoft: значения NTSTATUS
- Исходный код ReactOS: выделение и завершение IRP
Нужно найти другой код? Найти другой код состояния или ошибки.