Функция 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 (include Fltkernel.h)
библиотеки FltMgr.lib
IRQL <= APC_LEVEL

См. также

FltAllocateContext

FltDeleteContext

FltGetInstanceContext

FltReleaseContext

FltSetInstanceContext