Функция FltDeleteInstanceContext (fltkernel.h)
FltDeleteInstanceContext удаляет контекст из заданного экземпляра и помечает контекст для удаления.
Синтаксис
NTSTATUS FLTAPI FltDeleteInstanceContext(
[in] PFLT_INSTANCE Instance,
[out] PFLT_CONTEXT *OldContext
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для экземпляра.
[out] OldContext
Указатель на переменную, выделенную вызывающим объектом, которая получает адрес удаленного контекста. Этот параметр является необязательным и может иметь значение NULL. Если значение OldContext не равно NULL и не указывает на NULL_CONTEXT, вызывающий объект отвечает за вызов FltReleaseContext для освобождения этого контекста, когда он больше не нужен.
Возвращаемое значение
FltDeleteInstanceContext возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_FLT_DELETING_OBJECT | Указанный экземпляр будет снесен. Это код ошибки. |
STATUS_NOT_FOUND | Соответствующий контекст не найден. Это код ошибки. |
Комментарии
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
Так как контексты считаются ссылочными, драйверу минифильтра обычно не требуется вызывать подпрограмму, например FltDeleteInstanceContext , для явного удаления контекста.
Драйвер минифильтра вызывает FltDeleteInstanceContext , чтобы удалить контекст из экземпляра и пометить контекст для удаления. Контекст обычно освобождается немедленно, если на него нет незавершенной ссылки (например, потому, что контекст по-прежнему используется другим потоком).
Чтобы выделить новый контекст, вызовите FltAllocateContext.
Чтобы получить контекст экземпляра, вызовите Метод FltGetInstanceContext.
Чтобы задать контекст экземпляра, вызовите FltSetInstanceContext.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |