Что означает код NTSTATUS 0xC000021E (STATUS_DRIVER_CANCEL_TIMEOUT)?

 
Предыдущий Следующий
STATUS_VDM_HARD_ERROR STATUS_REPLY_MESSAGE_MISMATCH

STATUS_DRIVER_CANCEL_TIMEOUT

Путь отмены не смог своевременно освободить запрос

При отмене владение передаётся по строгим правилам IRP и очередей. Драйвер должен при необходимости остановить аппаратную операцию, разрешить гонки с обычным завершением, освободить блокировки и завершить либо передать запрос ровно один раз. Этот статус означает, что отменённый запрос оставался незавершённым достаточно долго, чтобы сработал тайм-аут.

Задержавшийся компонент может находиться ниже драйвера, инициировавшего отмену. Проследите стек IRP и владение отменой, не предполагая автоматически, что виноват верхний драйвер. Искусственное завершение запроса может привести к обращению к освобождённой памяти, если оборудование или другой драйвер всё ещё владеет им.

Что проверить

  • Зафиксируйте стек IRP, процедуру отмены, владельца очереди и ожидающую аппаратную команду.
  • Проверьте порядок блокировок и гонки между отменой, DPC, тайм-аутом и обычным завершением.
  • Используйте проверку ввода-вывода Driver Verifier и журналы запросов фреймворка для обнаружения двойного владения.

Ссылки


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