Функция FltReleaseContext (fltkernel.h)

FltReleaseContext уменьшает количество ссылок в контексте.

Синтаксис

VOID FLTAPI FltReleaseContext(
  [in] PFLT_CONTEXT Context
);

Параметры

[in] Context

Указатель на контекст. Должен быть допустимым указателем на объект контекста для тома, экземпляра, потока или дескриптора потока. Этот параметр является обязательным и не может иметь значение NULL.

Возвращаемое значение

None

Remarks

Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.

Драйвер минифильтра вызывает FltReleaseContext , чтобы освободить контекст. FltReleaseContext уменьшает количество ссылок в заданном контексте. Когда число ссылок достигает нуля, контекст немедленно освобождается, если вызывающий объект выполняется в IRQL <= APC_LEVEL. Если вызывающий объект выполняется на DISPATCH_LEVEL IRQL, то для освобождения контекста планируется рабочий элемент.

Примечание

После возврата FltReleaseContext вызывающий объект не должен использовать контекст, так как контекст, возможно, уже освобожден.

Каждый успешный вызов FltAllocateContext, FltGetXxxContext или FltReferenceContext в конечном итоге должен соответствовать вызову FltReleaseContext.

Обратите внимание, что указатель OldContext , возвращаемый FltSetXxxContext , и параметр Context , используемый для вызова FltDeleteContext , также должны быть освобождены путем вызова FltReleaseContext , если они больше не нужны.

Чтобы выделить новый контекст, вызовите FltAllocateContext.

Чтобы увеличить количество ссылок в контексте, вызовите FltReferenceContext.

Дополнительные сведения о подсчете ссылок на контексты см. в разделе Ссылки на контексты.

Вызывающие функции FltReleaseContext должны выполняться в IRQL <= DISPATCH_LEVEL, если контекст был выделен из невыгребованного пула. Если контекст был выделен из страничного пула, вызывающие средства должны выполняться в irQL <= APC_LEVEL.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL См. раздел "Примечания".

См. также раздел

FltAllocateContext

FltDeleteContext

FltGetContexts

FltGetContextsEx

FltGetFileContext

FltGetInstanceContext

FltGetSectionContext

FltGetStreamContext

FltGetStreamHandleContext

FltGetTransactionContext

FltGetVolumeContext

FltReferenceContext

FltReleaseContexts

FltSetFileContext

FltSetInstanceContext

FltSetStreamContext

FltSetStreamHandleContext

FltSetTransactionContext

FltSetVolumeContext