Что означает код NTSTATUS 0xC01C0002 (STATUS_FLT_CONTEXT_ALREADY_DEFINED)?

 
Предыдущий Следующий
STATUS_FLT_NO_HANDLER_DEFINED STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST

STATUS_FLT_CONTEXT_ALREADY_DEFINED

Контекст мини-фильтра хранит состояние для файла, потока, дескриптора потока, тома, экземпляра или транзакции. Этот статус обычно возникает при запросе FLT_SET_CONTEXT_KEEP_IF_EXISTS: у целевого объекта уже есть контекст для данного экземпляра мини-фильтра, и диспетчер фильтров намеренно оставляет существующий контекст на месте.

Это отличается от STATUS_FLT_CONTEXT_ALREADY_LINKED. Здесь целевой объект уже занимает соответствующее место контекста; в связанном случае новый объект контекста уже подключён в другом месте. Если вызывающая сторона запрашивает старый контекст, она также обязана соблюдать документированные правила владения ссылками и их подсчёта.

Как обработать

  • Определите, соответствует ли сохранение первого контекста требуемой политике разрешения гонки или необходима замена.
  • Получите и проверьте существующий контекст вместо выделения дублирующего состояния для объекта.
  • Освобождайте каждую полученную ссылку на контекст во всех ветвях выполнения, включая эту.

FltSetStreamContext | Управление контекстами мини-фильтра | Справочник NTSTATUS


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